-
Notifications
You must be signed in to change notification settings - Fork 6
/
vitest.workspace.mts
88 lines (82 loc) · 2.02 KB
/
vitest.workspace.mts
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
/// <reference types="vitest" />
import { defineWorkspace } from "vitest/config";
import { storybookTest } from "@storybook/experimental-addon-test/vitest-plugin";
const nodeTestPaths = ["../tests/unit/**/*.node.{test,spec}.ts"];
const browserTestPaths = ["../tests/unit/**/*.browser.{test,spec}.ts"];
const normalTestPaths = ["../tests/unit/**/*.{test,spec}.ts"];
const ignorePaths = (paths: string[]) => paths.map((path) => `!${path}`);
export default defineWorkspace([
// Node.js環境
{
extends: "./vite.config.mts",
test: {
include: nodeTestPaths,
name: "node",
environment: "node",
globals: true,
},
},
// happy-domのエミュレート版ブラウザ環境
{
extends: "./vite.config.mts",
plugins: [],
test: {
include: [
...normalTestPaths,
...ignorePaths(nodeTestPaths),
...ignorePaths(browserTestPaths),
],
globals: true,
name: "unit",
environment: "happy-dom",
},
},
// Chromiumブラウザ環境
{
extends: "./vite.config.mts",
test: {
include: browserTestPaths,
globals: true,
name: "browser",
browser: {
enabled: true,
name: "chromium",
provider: "playwright",
headless: true,
api: 7158,
ui: false,
},
},
},
// Storybook
{
extends: "./vite.config.mts",
plugins: [
storybookTest({
storybookScript: "storybook --ci --port 7160",
storybookUrl: "http://localhost:7160",
}),
],
resolve: {
alias: {
// NOTE: Storybookで`template:`指定を使うために必要
vue: "vue/dist/vue.esm-bundler.js",
},
},
test: {
include: ["./**/*.stories.ts"],
globals: true,
name: "storybook",
browser: {
enabled: true,
name: "chromium",
provider: "playwright",
headless: true,
api: 7159,
ui: false,
},
isolate: false,
setupFiles: ["./.storybook/vitest.setup.ts"],
},
},
]);