Skip to content

Commit 4b34896

Browse files
committed
chore: remove unused package
1 parent d3aa695 commit 4b34896

4 files changed

Lines changed: 132 additions & 4 deletions

File tree

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@
122122
"@types/sanitize-html": "2.16.0",
123123
"@types/semver": "7.7.1",
124124
"@types/validate-npm-package-name": "4.0.2",
125-
"@valibot/to-json-schema": "^1.5.0",
126125
"@vitest/browser-playwright": "4.0.18",
127126
"@vitest/coverage-v8": "4.0.18",
128127
"@vue/test-utils": "2.4.6",

pnpm-lock.yaml

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/nuxt/a11y.spec.ts

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,13 @@ import {
114114
AppFooter,
115115
AppHeader,
116116
AppLogo,
117+
AuthorAvatar,
118+
AuthorList,
119+
BlogPostListCard,
120+
BlogPostWrapper,
121+
BlueskyComment,
122+
BlueskyComments,
123+
EmbeddableBlueskyPost,
117124
BaseCard,
118125
BuildEnvironment,
119126
ButtonBase,
@@ -2491,6 +2498,129 @@ describe('component accessibility audits', () => {
24912498
expect(results.violations).toEqual([])
24922499
})
24932500
})
2501+
2502+
describe('AuthorAvatar', () => {
2503+
it('should have no accessibility violations with fallback text', async () => {
2504+
const component = await mountSuspended(AuthorAvatar, {
2505+
props: {
2506+
author: {
2507+
name: 'Daniel Roe',
2508+
blueskyHandle: 'danielroe.dev',
2509+
avatar: null,
2510+
profileUrl: 'https://bsky.app/profile/danielroe.dev',
2511+
},
2512+
},
2513+
})
2514+
const results = await runAxe(component)
2515+
expect(results.violations).toEqual([])
2516+
})
2517+
})
2518+
2519+
describe('AuthorList', () => {
2520+
it('should have no accessibility violations', async () => {
2521+
const component = await mountSuspended(AuthorList, {
2522+
props: {
2523+
authors: [
2524+
{ name: 'Daniel Roe', blueskyHandle: 'danielroe.dev' },
2525+
{ name: 'Salma Alam-Naylor' },
2526+
],
2527+
},
2528+
})
2529+
const results = await runAxe(component)
2530+
expect(results.violations).toEqual([])
2531+
})
2532+
})
2533+
2534+
describe('BlogPostWrapper', () => {
2535+
it('should have no accessibility violations', async () => {
2536+
const component = await mountSuspended(BlogPostWrapper, {
2537+
props: {
2538+
frontmatter: {
2539+
authors: [{ name: 'Daniel Roe', blueskyHandle: 'danielroe.dev' }],
2540+
title: 'Building Accessible Vue Components',
2541+
date: '2024-06-15',
2542+
description: 'A guide to building accessible components in Vue.js applications.',
2543+
path: '/blog/building-accessible-vue-components',
2544+
slug: 'building-accessible-vue-components',
2545+
},
2546+
},
2547+
slots: { default: '<p>Blog post content here.</p>' },
2548+
})
2549+
const results = await runAxe(component)
2550+
expect(results.violations).toEqual([])
2551+
})
2552+
})
2553+
2554+
describe('BlueskyComment', () => {
2555+
it('should have no accessibility violations', async () => {
2556+
const component = await mountSuspended(BlueskyComment, {
2557+
props: {
2558+
comment: {
2559+
uri: 'at://did:plc:2gkh62xvzokhlf6li4ol3b3d/app.bsky.feed.post/3mcg7k75fdc2k',
2560+
cid: 'bafyreigincphooxt7zox3blbocf6hnczzv36fkuj2zi5iuzpjgq6gk6pju',
2561+
author: {
2562+
did: 'did:plc:2gkh62xvzokhlf6li4ol3b3d',
2563+
handle: 'patak.dev',
2564+
displayName: 'patak',
2565+
avatar:
2566+
'https://cdn.bsky.app/img/avatar/plain/did:plc:2gkh62xvzokhlf6li4ol3b3d/bafkreifgzl4e5jqlakd77ajvnilsb5tufsv24h2sxfwmitkzxrh3sk6mhq@jpeg',
2567+
},
2568+
text: 'our kids will need these new stories, thanks for writing this Daniel',
2569+
createdAt: '2026-01-14T23:22:05.257Z',
2570+
likeCount: 13,
2571+
replyCount: 0,
2572+
repostCount: 0,
2573+
replies: [],
2574+
},
2575+
depth: 0,
2576+
},
2577+
})
2578+
const results = await runAxe(component)
2579+
expect(results.violations).toEqual([])
2580+
})
2581+
})
2582+
2583+
describe('BlueskyComments', () => {
2584+
it('should have no accessibility violations', async () => {
2585+
const component = await mountSuspended(BlueskyComments, {
2586+
props: {
2587+
postUri: 'at://did:plc:jbeaa5kdaladzwq3r7f5xgwe/app.bsky.feed.post/3mcg6svsgsm2k',
2588+
},
2589+
})
2590+
const results = await runAxe(component)
2591+
expect(results.violations).toEqual([])
2592+
})
2593+
})
2594+
2595+
describe('EmbeddableBlueskyPost', () => {
2596+
it('should have no accessibility violations', async () => {
2597+
const component = await mountSuspended(EmbeddableBlueskyPost, {
2598+
props: {
2599+
url: 'https://bsky.app/profile/patak.dev/post/3mcg7k75fdc2k',
2600+
},
2601+
})
2602+
const results = await runAxe(component)
2603+
expect(results.violations).toEqual([])
2604+
})
2605+
})
2606+
2607+
describe('BlogPostListCard', () => {
2608+
it('should have no accessibility violations', async () => {
2609+
const component = await mountSuspended(BlogPostListCard, {
2610+
props: {
2611+
authors: [{ name: 'Daniel Roe', blueskyHandle: 'danielroe.dev' }],
2612+
title: 'Building Accessible Vue Components',
2613+
topics: ['accessibility', 'vue'],
2614+
excerpt: 'A guide to building accessible components in Vue.js applications.',
2615+
published: '2024-06-15',
2616+
path: 'building-accessible-vue-components',
2617+
index: 0,
2618+
},
2619+
})
2620+
const results = await runAxe(component)
2621+
expect(results.violations).toEqual([])
2622+
})
2623+
})
24942624
})
24952625

24962626
function applyTheme(colorMode: string, bgTheme: string | null) {

test/unit/a11y-component-coverage.spec.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const SKIPPED_COMPONENTS: Record<string, string> = {
2525
// OgImage components are server-side rendered images, not interactive UI
2626
'OgImage/Default.vue': 'OG Image component - server-rendered image, not interactive UI',
2727
'OgImage/Package.vue': 'OG Image component - server-rendered image, not interactive UI',
28+
'OgImage/BlogPost.vue': 'OG Image component - server-rendered image, not interactive UI',
2829

2930
// Client-only components with complex dependencies
3031
'Header/AuthModal.client.vue': 'Complex auth modal with navigation - requires full app context',

0 commit comments

Comments
 (0)