-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvitest.config.ts
More file actions
114 lines (113 loc) · 2.97 KB
/
Copy pathvitest.config.ts
File metadata and controls
114 lines (113 loc) · 2.97 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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import { defineConfig } from "vitest/config";
import react from "@vitejs/plugin-react";
import path from "path";
import { fileURLToPath } from "node:url";
import { storybookTest } from "@storybook/addon-vitest/vitest-plugin";
import { playwright } from "@vitest/browser-playwright";
const dirname =
typeof __dirname !== "undefined"
? __dirname
: path.dirname(fileURLToPath(import.meta.url));
// More info at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon
export default defineConfig({
plugins: [react()],
test: {
// Global test configuration
globals: true,
coverage: {
provider: "v8",
reporter: ["text", "json", "html", "lcov"],
exclude: [
"node_modules/",
"tests/",
"**/*.config.ts",
"**/*.config.js",
"**/types/**",
".next/",
"prisma/",
"**/*.d.ts",
".storybook/",
"src/stories/",
],
thresholds: {
lines: 70,
functions: 70,
branches: 60,
statements: 70,
},
},
// Define projects: one for unit tests, one for Storybook
projects: [
// Project 1: Unit tests
{
test: {
name: "unit",
environment: "happy-dom",
setupFiles: ["./tests/setup.ts"],
globals: true,
include: [
"tests/**/*.{test,spec}.{ts,tsx}",
"app/**/*.{test,spec}.{ts,tsx}",
"src/**/*.{test,spec}.{ts,tsx}",
],
exclude: [
"node_modules",
".next",
"dist",
"coverage",
"**/*.stories.{ts,tsx}",
".storybook",
],
},
},
// Project 2: Storybook tests
{
plugins: [
// The plugin will run tests for the stories defined in your Storybook config
// See options at: https://storybook.js.org/docs/next/writing-tests/integrations/vitest-addon#storybooktest
storybookTest({
configDir: path.join(dirname, ".storybook"),
}),
],
test: {
name: "storybook",
browser: {
enabled: true,
headless: true,
provider: playwright({}),
instances: [
{
browser: "chromium",
},
],
},
setupFiles: [".storybook/vitest.setup.ts"],
},
},
],
},
resolve: {
alias: [
{
find: /^@\/lib\/(.*)/,
replacement: path.resolve(__dirname, "./src/lib/$1"),
},
{
find: /^@\/hooks\/(.*)/,
replacement: path.resolve(__dirname, "./src/hooks/$1"),
},
{
find: /^@\/components\/(.*)/,
replacement: path.resolve(__dirname, "./src/components/$1"),
},
{
find: /^@\/app\/(.*)/,
replacement: path.resolve(__dirname, "./app/$1"),
},
{
find: "@",
replacement: path.resolve(__dirname, "."),
},
],
},
});