-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathvitest.config.ts
More file actions
78 lines (75 loc) · 2.15 KB
/
vitest.config.ts
File metadata and controls
78 lines (75 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import { playwright } from '@vitest/browser-playwright';
import path from 'node:path';
import { defineConfig, mergeConfig } from 'vitest/config';
import viteConfig from './vite.config';
const __dirname = import.meta.dirname;
const { resolve } = path;
export default defineConfig(async (configEnv) => {
const storybookConfigDir = process.env.STORYBOOK_CONFIG_DIR;
const isStorybookTest = Boolean(storybookConfigDir);
if (isStorybookTest) {
// eslint-disable-next-line no-console
console.log(
'[storybook][vitest-config] project name:',
`storybook:${storybookConfigDir}`,
);
}
const resolvedViteConfig =
typeof viteConfig === 'function' ? await viteConfig(configEnv) : viteConfig;
return mergeConfig(
resolvedViteConfig,
defineConfig({
test: {
globals: true,
...(isStorybookTest
? {
name: `storybook:${storybookConfigDir}`,
setupFiles: resolve(__dirname, '.storybook/vitest.setup.ts'),
}
: { environment: 'jsdom' }),
exclude: [
'**/node_modules/**',
'**/dist/**',
'**/.{idea,git,cache,output,temp}/**',
...(isStorybookTest ? [] : ['**/*.stories.{js,jsx,ts,tsx}']),
],
// This ensures Vitest uses the same plugin pipeline as Vite
transformMode: {
web: [/.[tj]sx?$/],
},
css: true,
server: {
deps: {
inline: ['@cfpb', 'vite-plugin-svgr'],
},
},
clearMocks: true,
coverage: {
provider: 'istanbul',
enabled: true,
'100': true,
reporter: ['text', 'lcov'],
reportsDirectory: 'coverage',
all: false,
},
deps: {
optimizer: {
web: {
include: ['vite-plugin-svgr'],
},
},
},
...(isStorybookTest
? {
browser: {
enabled: true,
provider: playwright(),
instances: [{ browser: 'chromium' }],
headless: true,
},
}
: {}),
},
}),
);
});