forked from
npmx.dev/npmx.dev
[READ-ONLY]
a fast, modern browser for the npm registry
1import { fileURLToPath } from 'node:url'
2import { defineConfig } from 'vitest/config'
3import { defineVitestProject } from '@nuxt/test-utils/config'
4import { playwright } from '@vitest/browser-playwright'
5
6const rootDir = fileURLToPath(new URL('.', import.meta.url))
7
8export default defineConfig({
9 test: {
10 projects: [
11 {
12 resolve: {
13 alias: {
14 '#shared': `${rootDir}/shared`,
15 },
16 },
17 test: {
18 name: 'unit',
19 include: ['test/unit/**/*.{test,spec}.ts'],
20 environment: 'node',
21 },
22 },
23 await defineVitestProject({
24 test: {
25 name: 'nuxt',
26 include: ['test/nuxt/**/*.{test,spec}.ts'],
27 environment: 'nuxt',
28 environmentOptions: {
29 nuxt: {
30 rootDir: fileURLToPath(new URL('.', import.meta.url)),
31 overrides: {
32 vue: {
33 runtimeCompiler: true,
34 },
35 experimental: {
36 payloadExtraction: false,
37 viteEnvironmentApi: false,
38 },
39 pwa: {
40 pwaAssets: { disabled: true },
41 },
42 ogImage: { enabled: false },
43 },
44 },
45 },
46 browser: {
47 enabled: true,
48 provider: playwright(),
49 instances: [{ browser: 'chromium', headless: true }],
50 },
51 },
52 }),
53 ],
54 coverage: {
55 enabled: true,
56 provider: 'v8',
57 // Exclude files that cause parse errors during coverage remapping.
58 // The V8 coverage provider uses rolldown to parse source files, but
59 // rolldown seems to currently fail on Vite's SSR transform output (`await __vite_ssr_import__`).
60 exclude: [
61 '**/node_modules/**',
62 'cli/**',
63 'app/utils/versions.ts',
64 'app/utils/package-name.ts',
65 'shared/utils/git-providers.ts',
66 'shared/utils/spdx.ts',
67 'shared/utils/url.ts',
68 'server/utils/readme.ts',
69 'server/utils/docs/text.ts',
70 'server/utils/code-highlight.ts',
71 'server/utils/npm.ts',
72 'server/utils/shiki.ts',
73 'server/utils/jsr.ts',
74 ],
75 },
76 },
77})