Skip to content

Commit 262c38d

Browse files
committed
test: trim down overly verbose tests
1 parent 6190224 commit 262c38d

5 files changed

Lines changed: 148 additions & 224 deletions

File tree

test/fixtures/likes-leaderboard.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import type { LikesLeaderboardEntry } from '#shared/types/social'
2+
3+
export function createLikesLeaderboardEntry(
4+
packageName: string,
5+
overrides: Partial<LikesLeaderboardEntry> = {},
6+
): LikesLeaderboardEntry {
7+
return {
8+
rank: 1,
9+
packageName,
10+
subjectRef: `https://npmx.dev/package/${packageName}`,
11+
totalLikes: 0,
12+
packageDescription: null,
13+
weeklyDownloads: null,
14+
repositoryStars: null,
15+
homepagePreviewUrl: null,
16+
homepagePreviewWidth: null,
17+
homepagePreviewHeight: null,
18+
homepageLogoUrl: null,
19+
homepageLogoWidth: null,
20+
homepageLogoHeight: null,
21+
...overrides,
22+
}
23+
}

test/nuxt/a11y.spec.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { VueWrapper } from '@vue/test-utils'
44
import 'axe-core'
55
import type { AxeResults, RunOptions } from 'axe-core'
66
import { afterEach, beforeEach, describe, expect, it, type MockInstance, vi } from 'vitest'
7+
import { createLikesLeaderboardEntry } from '~~/test/fixtures/likes-leaderboard'
78

89
// axe-core is a UMD module that exposes itself as window.axe in the browser
910
declare const axe: {
@@ -713,10 +714,8 @@ describe('component accessibility audits', () => {
713714
// across tests, so reset Nuxt's async-data store between cases.
714715
clearNuxtData()
715716
registerEndpoint('/api/leaderboard/likes', () => [
716-
{
717+
createLikesLeaderboardEntry('vue', {
717718
rank: 1,
718-
packageName: 'vue',
719-
subjectRef: 'https://npmx.dev/package/vue',
720719
totalLikes: 120,
721720
packageDescription: 'The Progressive JavaScript Framework.',
722721
weeklyDownloads: 1200,
@@ -727,22 +726,17 @@ describe('component accessibility audits', () => {
727726
homepageLogoUrl: 'https://images.example.com/vue-logo.svg',
728727
homepageLogoWidth: 256,
729728
homepageLogoHeight: 256,
730-
},
731-
{
729+
}),
730+
createLikesLeaderboardEntry('@nuxt/kit', {
732731
rank: 2,
733-
packageName: '@nuxt/kit',
734-
subjectRef: 'https://npmx.dev/package/@nuxt/kit',
735732
totalLikes: 90,
736733
packageDescription: 'Nuxt internals for module authors.',
737734
weeklyDownloads: 900,
738735
repositoryStars: 59000,
739-
homepagePreviewUrl: null,
740-
homepagePreviewWidth: null,
741-
homepagePreviewHeight: null,
742736
homepageLogoUrl: 'https://images.example.com/nuxt-logo.svg',
743737
homepageLogoWidth: 256,
744738
homepageLogoHeight: 256,
745-
},
739+
}),
746740
])
747741

748742
const component = await mountSuspended(LikesLeaderboardPage, {

test/nuxt/pages/LikesLeaderboardPage.spec.ts

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
22
import { mountSuspended, registerEndpoint } from '@nuxt/test-utils/runtime'
33
import type { VueWrapper } from '@vue/test-utils'
4+
import { createLikesLeaderboardEntry } from '~~/test/fixtures/likes-leaderboard'
45
import LikesLeaderboardPage from '~/pages/leaderboard/likes.vue'
56

67
describe('likes leaderboard page', () => {
@@ -18,10 +19,8 @@ describe('likes leaderboard page', () => {
1819

1920
it('renders ranked rows from the local leaderboard API', async () => {
2021
registerEndpoint('/api/leaderboard/likes', () => [
21-
{
22+
createLikesLeaderboardEntry('vue', {
2223
rank: 1,
23-
packageName: 'vue',
24-
subjectRef: 'https://npmx.dev/package/vue',
2524
totalLikes: 120,
2625
packageDescription: 'The Progressive JavaScript Framework.',
2726
weeklyDownloads: 1200,
@@ -32,52 +31,34 @@ describe('likes leaderboard page', () => {
3231
homepageLogoUrl: 'https://images.example.com/vue-logo.svg',
3332
homepageLogoWidth: 256,
3433
homepageLogoHeight: 256,
35-
},
36-
{
34+
}),
35+
createLikesLeaderboardEntry('@nuxt/kit', {
3736
rank: 2,
38-
packageName: '@nuxt/kit',
39-
subjectRef: 'https://npmx.dev/package/@nuxt/kit',
4037
totalLikes: 90,
4138
packageDescription: 'Nuxt internals for module authors.',
4239
weeklyDownloads: 900,
4340
repositoryStars: 59000,
44-
homepagePreviewUrl: null,
45-
homepagePreviewWidth: null,
46-
homepagePreviewHeight: null,
4741
homepageLogoUrl: 'https://images.example.com/nuxt-logo.svg',
4842
homepageLogoWidth: 256,
4943
homepageLogoHeight: 256,
50-
},
51-
{
44+
}),
45+
createLikesLeaderboardEntry('react', {
5246
rank: 3,
53-
packageName: 'react',
54-
subjectRef: 'https://npmx.dev/package/react',
5547
totalLikes: 80,
5648
packageDescription: 'The library for web and native user interfaces.',
5749
weeklyDownloads: 800,
5850
repositoryStars: 230000,
59-
homepagePreviewUrl: null,
60-
homepagePreviewWidth: null,
61-
homepagePreviewHeight: null,
62-
homepageLogoUrl: null,
63-
homepageLogoWidth: null,
64-
homepageLogoHeight: null,
65-
},
66-
{
51+
}),
52+
createLikesLeaderboardEntry('svelte', {
6753
rank: 4,
68-
packageName: 'svelte',
69-
subjectRef: 'https://npmx.dev/package/svelte',
7054
totalLikes: 70,
7155
packageDescription: 'Cybernetically enhanced web apps.',
7256
weeklyDownloads: 700,
7357
repositoryStars: 82000,
74-
homepagePreviewUrl: null,
75-
homepagePreviewWidth: null,
76-
homepagePreviewHeight: null,
7758
homepageLogoUrl: 'https://images.example.com/svelte-logo.svg',
7859
homepageLogoWidth: 256,
7960
homepageLogoHeight: 256,
80-
},
61+
}),
8162
])
8263

8364
wrapper = await mountSuspended(LikesLeaderboardPage, {

0 commit comments

Comments
 (0)