forked from CopilotKit/CopilotKit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvitest.config.ts
More file actions
39 lines (38 loc) · 2.17 KB
/
Copy pathvitest.config.ts
File metadata and controls
39 lines (38 loc) · 2.17 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
import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
testTimeout: 30000,
// Teardown / setup hook timeouts bumped from the 10s vitest default.
// Under Node 20, when a test file has spawned a large number of
// subprocesses (validate-pins runs 134 subprocesses; create-integration /
// generate-registry / bundle-demo-content each spawn `npx tsx`), vitest's
// per-hook timeouts can fire during slow teardown under the combined
// load. Bumping to 30s matches our testTimeout. Note: the vitest
// worker-RPC "onTaskUpdate" timeout is a SEPARATE, hardcoded 60s in
// birpc (DEFAULT_TIMEOUT = 6e4 in index.B521nVV-.js) — these knobs
// do NOT influence it. The RPC timeout is tracked upstream:
// https://github.com/vitest-dev/vitest/issues/6129
teardownTimeout: 30000,
hookTimeout: 30000,
// `pool: 'forks'` gives every file its own node process — env mutations
// and module-level state are naturally isolated. The two remaining FS
// races (bundle-demo-content / generate-registry / create-integration
// racing for `.git/index.lock` via `git checkout HEAD --`, and
// create-integration vs generate-registry on `showcase/integrations/`) were
// fixed in this PR: the first via a cross-process lock in
// `test-cleanup.ts`, the second by redirecting create-integration at a
// per-suite tmpdir. With those in place, parallel file execution is
// correct AND gives every file a fresh 60s birpc `onTaskUpdate` budget
// (vitest #6129), eliminating the cumulative back-pressure that tripped
// unit(20.x/22.x/24.x) on #4068/#4018/#4079 (158s → 19s locally,
// 1061/1061 across 3 consecutive runs).
fileParallelism: true,
pool: "forks",
// Exclude Playwright E2E tests — they use @playwright/test, not vitest.
// Also exclude fixture *.spec.ts files under __tests__/fixtures/** —
// these are inert data files consumed by validate-parity tests, not
// real vitest suites, and vitest's default glob would otherwise pick
// them up and fail with "No test suite found".
exclude: ["__tests__/e2e/**", "__tests__/fixtures/**", "node_modules/**"],
},
});