40 lines
2.2 KiB
TypeScript
40 lines
2.2 KiB
TypeScript
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/**"],
|
|
},
|
|
});
|