@@ -114,6 +114,8 @@ import {
114114 AppFooter ,
115115 AppHeader ,
116116 AppLogo ,
117+ AboutLogoImg ,
118+ AboutLogoList ,
117119 BaseCard ,
118120 BlueskyPostEmbed ,
119121 BuildEnvironment ,
@@ -197,6 +199,7 @@ import {
197199
198200// Server variant components must be imported directly to test the server-side render
199201// The #components import automatically provides the client variant
202+ import LogoNuxt from '~/assets/logos/oss-partners/nuxt.svg'
200203import HeaderAccountMenuServer from '~/components/Header/AccountMenu.server.vue'
201204import ToggleServer from '~/components/Settings/Toggle.server.vue'
202205import SearchProviderToggleServer from '~/components/SearchProviderToggle.server.vue'
@@ -304,6 +307,88 @@ describe('component accessibility audits', () => {
304307 } )
305308 } )
306309
310+ describe ( 'AboutLogoImg' , ( ) => {
311+ it ( 'should have no accessibility violations with string src' , async ( ) => {
312+ const component = await mountSuspended ( AboutLogoImg , {
313+ props : {
314+ src : LogoNuxt ,
315+ alt : 'Nuxt logo' ,
316+ } ,
317+ } )
318+ const results = await runAxe ( component )
319+ expect ( results . violations ) . toEqual ( [ ] )
320+ } )
321+
322+ it ( 'should have no accessibility violations with dark/light src' , async ( ) => {
323+ const component = await mountSuspended ( AboutLogoImg , {
324+ props : {
325+ src : {
326+ dark : LogoNuxt ,
327+ light : 'auto' ,
328+ } ,
329+ alt : 'Nuxt logo' ,
330+ } ,
331+ } )
332+ const results = await runAxe ( component )
333+ expect ( results . violations ) . toEqual ( [ ] )
334+ } )
335+ } )
336+
337+ describe ( 'AboutLogoList' , ( ) => {
338+ it ( 'should have no accessibility violations with direct logo items' , async ( ) => {
339+ const component = await mountSuspended ( AboutLogoList , {
340+ props : {
341+ list : [
342+ {
343+ name : 'Nuxt' ,
344+ url : 'https://nuxt.com' ,
345+ logo : LogoNuxt ,
346+ } ,
347+ {
348+ name : 'Nuxt' ,
349+ url : 'https://nuxt.com' ,
350+ logo : {
351+ dark : LogoNuxt ,
352+ light : 'auto' ,
353+ } ,
354+ } ,
355+ ] ,
356+ } ,
357+ } )
358+ const results = await runAxe ( component )
359+ expect ( results . violations ) . toEqual ( [ ] )
360+ } )
361+
362+ it ( 'should have no accessibility violations with grouped items' , async ( ) => {
363+ const component = await mountSuspended ( AboutLogoList , {
364+ props : {
365+ list : [
366+ {
367+ name : 'OSS Partners' ,
368+ items : [
369+ {
370+ name : 'Nuxt' ,
371+ url : 'https://nuxt.com' ,
372+ logo : LogoNuxt ,
373+ } ,
374+ {
375+ name : 'Nuxt' ,
376+ url : 'https://nuxt.com' ,
377+ logo : {
378+ dark : LogoNuxt ,
379+ light : 'auto' ,
380+ } ,
381+ } ,
382+ ] ,
383+ } ,
384+ ] ,
385+ } ,
386+ } )
387+ const results = await runAxe ( component )
388+ expect ( results . violations ) . toEqual ( [ ] )
389+ } )
390+ } )
391+
307392 describe ( 'BaseCard' , ( ) => {
308393 it ( 'should have no accessibility violations' , async ( ) => {
309394 const component = await mountSuspended ( BaseCard , {
0 commit comments