-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathvitest.config.mts
More file actions
119 lines (117 loc) · 3.07 KB
/
Copy pathvitest.config.mts
File metadata and controls
119 lines (117 loc) · 3.07 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
115
116
117
118
119
import { defineConfig } from "vitest/config";
import vue from "@vitejs/plugin-vue";
import vueRouter from "vue-router/vite";
import ui from "@nuxt/ui/vite";
import { resolve } from "path";
import { readFileSync } from "fs";
const mdRawForTests = {
name: "md-raw-for-tests",
enforce: "pre" as const,
resolveId(id: string) {
return id.endsWith(".md") ? `${id}?raw` : null;
},
load(id: string) {
if (!id.endsWith(".md?raw")) {
return null;
}
return `export default ${JSON.stringify(readFileSync(id.slice(0, -4), "utf8"))};`;
},
};
export default defineConfig({
plugins: [
mdRawForTests,
vueRouter({
root: resolve(__dirname, "src/renderer"),
dts: false,
watch: false,
}),
vue(),
ui({
autoImport: {
eslintrc: { enabled: false },
},
}),
],
test: {
projects: [
{
extends: true,
test: {
name: "renderer",
environment: "happy-dom",
globals: true,
include: ["test/renderer/src/**/*.{test,spec}.{ts,vue}"],
setupFiles: ["test/renderer/src/setup.ts"],
},
},
{
extends: true,
test: {
name: "main",
environment: "node",
globals: true,
testTimeout: 30000,
hookTimeout: 30000,
include: [
"test/main/**/*.{test,spec}.ts",
"test/main/**/*.{test,spec}.mjs",
"test/preload/**/*.{test,spec}.ts",
"test/mcp-servers/**/*.{test,spec}.ts",
"test/shared/**/*.{test,spec}.ts",
],
setupFiles: ["test/main/setup.ts"],
},
resolve: {
alias: {
"@main": resolve(__dirname, "src/main"),
"@preload": resolve(__dirname, "src/preload"),
"@test": resolve(__dirname, "test"),
},
},
},
],
coverage: {
reporter: ["text", "html"],
reportsDirectory: "./coverage",
thresholds: {
statements: 50,
branches: 40,
functions: 50,
lines: 50,
},
include: [
"src/renderer/src",
"src/main",
"src/mcp-servers/fyllo-specs",
"src/mcp-servers/fyllo-cortex",
"src/shared",
],
exclude: [
"src/renderer/src/**/*.spec.ts",
"src/renderer/src/**/*.test.ts",
"src/renderer/src/**/*.d.ts",
"src/renderer/src/typed-router.d.ts",
"src/renderer/src/vite-env.d.ts",
"src/renderer/src/config/**",
"src/renderer/src/assets/**",
"src/main/**/*.spec.ts",
"src/main/**/*.test.ts",
"src/main/index.ts",
"src/main/bootstrap/**",
"src/main/**/*.d.ts",
"src/shared/**/*.spec.ts",
"src/shared/**/*.test.ts",
"test/**",
],
},
},
resolve: {
alias: {
"@renderer": resolve(__dirname, "src/renderer/src"),
"@shared": resolve(__dirname, "src/shared"),
"@main": resolve(__dirname, "src/main"),
"@preload": resolve(__dirname, "src/preload"),
"@test": resolve(__dirname, "test"),
},
},
});