diff --git a/vitest.config.ts b/vitest.config.ts index 3a81fb3..3674fb9 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -20,5 +20,22 @@ export default defineConfig({ include: ['packages/*/test/**/*.test.ts', 'apps/*/test/**/*.test.ts'], environment: 'node', reporters: ['default'], + /** + * Above Vitest's 5s default, which was never a deliberate choice here. + * + * The heaviest tests are integration tests that do real work rather than compute: + * the locked-protocol guards initialise scratch git repositories and run the CLIs + * as child processes, and the dashboard tests build the site and hash artifacts. + * They peak around 2s on a developer machine, and Windows CI runners are several + * times slower at process spawning and file I/O, so 5s sat close enough to the + * edge that the Windows job failed intermittently on a different handful of tests + * each time while Ubuntu passed. + * + * This is headroom, not permission to be slow: a genuinely hung process still + * fails the run, and any test that actually approaches this ceiling is doing + * something worth looking at. + */ + testTimeout: 20_000, + hookTimeout: 20_000, }, });