forked from element-hq/element-web
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvitest.config.ts
More file actions
72 lines (64 loc) · 2.49 KB
/
Copy pathvitest.config.ts
File metadata and controls
72 lines (64 loc) · 2.49 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
/*
Copyright 2026 Element Creations Ltd.
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
Please see LICENSE files in the repository root for full details.
*/
import { defineConfig, type ViteUserConfig } from "vitest/config";
import { type Reporter } from "vitest/node";
import { env } from "node:process";
const reporters: NonNullable<ViteUserConfig["test"]>["reporters"] = [["default"]];
const slowTestReporter: Reporter = {
onTestRunEnd(testModules, unhandledErrors, reason) {
const tests = testModules
.flatMap((m) => Array.from(m.children.allTests()))
.filter((test) => test.diagnostic()?.slow);
tests.sort((x, y) => x.diagnostic()!.duration! - y.diagnostic()!.duration!);
tests.reverse();
if (tests.length > 0) {
console.warn("Slowest 10 tests:");
}
for (const t of tests.slice(0, 10)) {
console.warn(`${t.module.moduleId} > ${t.fullName}: ${t.diagnostic()?.duration.toFixed(0)}ms`);
}
},
};
// if we're running under GHA, enable the GHA & Sonar reporters
if (env["GITHUB_ACTIONS"] !== undefined) {
reporters.push(["github-actions", { silent: false }]);
// if we're running against the develop branch, also enable the slow test reporter
if (env["GITHUB_REF"] == "refs/heads/develop") {
reporters.push(slowTestReporter);
}
}
export default defineConfig({
oxc: {
// Configure the ts loader to handle all the files we may throw at it
include: /\.[cm]?tsx?$/,
},
test: {
projects: [
"{apps,modules,packages}/*/vitest.config.ts",
// We run shared-components separately for now as vitest lacks support for nested projects
// https://github.com/vitest-dev/vitest/issues/8544
"!packages/shared-components",
],
coverage: {
provider: "v8",
include: ["{apps,modules,packages}/*/src/**/*.{cts,ts,tsx}"],
exclude: [
// Exclude test files
"**/*.{stories,test}.{ts,tsx}",
// Exclude test utilities
"**/src/test/**",
// Exclude mocks
"**/src/**/*-{mock,mocks}.{ts,tsx}",
// Exclude type definition files
"**/*.d.ts",
// Exclude playwright-common as it is just test utilities
"packages/playwright-common/**",
],
reporter: [["lcov"]],
},
reporters,
},
});