Skip to content

Commit 1e6071b

Browse files
committed
refactor(vitest): convert to multi-project workspace with dynamic path resolution
1 parent 0e58e46 commit 1e6071b

File tree

3 files changed

+95
-15
lines changed

3 files changed

+95
-15
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src",
1212
"format": "prettier . --write",
1313
"postinstall": "husky install",
14-
"test": "vitest"
14+
"test": "vitest --workspace vitest.workspace.ts --run --silent"
1515
},
1616
"dependencies": {
1717
"@fortawesome/fontawesome-free": "^6.5.1",
@@ -76,4 +76,4 @@
7676
"optionalDependencies": {
7777
"esbuild-linux-64": "^0.15.18"
7878
}
79-
}
79+
}

vite.config.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,17 @@ export default defineConfig(() => {
3232
],
3333
resolve: {
3434
alias: {
35-
'#': fileURLToPath(new URL(`./${version}/src`, import.meta.url)),
35+
'#': fileURLToPath(
36+
new URL(`./${version}/src`, import.meta.url)
37+
),
3638
'@': fileURLToPath(
3739
new URL(`./${version}/src/components`, import.meta.url)
3840
),
3941
},
4042
},
41-
base: process.env.VITE_BASE || (isDesktop ? '/' : `/simulatorvue/${version}/`),
43+
base:
44+
process.env.VITE_BASE ||
45+
(isDesktop ? '/' : `/simulatorvue/${version}/`),
4246
build: {
4347
outDir: `./dist/simulatorvue/${version}/`,
4448
assetsDir: 'assets',
@@ -56,21 +60,24 @@ export default defineConfig(() => {
5660
},
5761
},
5862
},
59-
test: {
60-
globals: true,
61-
environment: 'jsdom',
62-
server: {
63-
deps: {
64-
inline: ['vuetify'],
65-
},
66-
},
67-
setupFiles: './src/simulator/spec/vitestSetup.ts',
68-
},
63+
// Test configuration is handled by vitest.workspace.ts
64+
// Removed to avoid conflicts with workspace projects
65+
// test: {
66+
// globals: true,
67+
// environment: 'jsdom',
68+
// server: {
69+
// deps: {
70+
// inline: ['vuetify'],
71+
// },
72+
// },
73+
// setupFiles: `./${version}/src/simulator/spec/vitestSetup.ts`,
74+
// },
75+
6976
server: {
7077
port: 4000,
7178
},
7279
preview: {
7380
port: 4173,
7481
},
7582
}
76-
})
83+
})

vitest.workspace.ts

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { defineWorkspace } from 'vitest/config'
2+
import { dirname, join } from 'path'
3+
import { fileURLToPath } from 'url'
4+
const __dirname = dirname(fileURLToPath(import.meta.url))
5+
6+
export default defineWorkspace([
7+
{
8+
extends: './vite.config.ts',
9+
test: {
10+
name: 'src',
11+
environment: 'jsdom',
12+
globals: true,
13+
include: ['src/**/*.{spec,test}.{js,ts}'],
14+
exclude: ['v0/**/*', 'v1/**/*'],
15+
setupFiles: ['./src/simulator/spec/vitestSetup.ts'],
16+
server: {
17+
deps: {
18+
inline: ['vuetify'],
19+
},
20+
},
21+
},
22+
resolve: {
23+
alias: {
24+
'#': join(__dirname, 'src'),
25+
'@': join(__dirname, 'src/components'),
26+
},
27+
},
28+
},
29+
{
30+
extends: './vite.config.ts',
31+
test: {
32+
name: 'v0',
33+
environment: 'jsdom',
34+
globals: true,
35+
include: ['v0/src/**/*.{spec,test}.{js,ts}'],
36+
exclude: ['v1/**/*', 'src/**/*'],
37+
setupFiles: ['./v0/src/simulator/spec/vitestSetup.ts'],
38+
server: {
39+
deps: {
40+
inline: ['vuetify'],
41+
},
42+
},
43+
},
44+
resolve: {
45+
alias: {
46+
'#': join(__dirname, 'v0/src'),
47+
'@': join(__dirname, 'v0/src/components'),
48+
},
49+
},
50+
},
51+
{
52+
extends: './vite.config.ts',
53+
test: {
54+
name: 'v1',
55+
environment: 'jsdom',
56+
globals: true,
57+
include: ['v1/src/**/*.{spec,test}.{js,ts}'],
58+
exclude: ['v0/**/*', 'src/**/*'],
59+
setupFiles: ['./v1/src/simulator/spec/vitestSetup.ts'],
60+
server: {
61+
deps: {
62+
inline: ['vuetify'],
63+
},
64+
},
65+
},
66+
resolve: {
67+
alias: {
68+
'#': join(__dirname, 'v1/src'),
69+
'@': join(__dirname, 'v1/src/components'),
70+
},
71+
},
72+
},
73+
])

0 commit comments

Comments
 (0)