diff --git a/scripts/precommit-server-unit.cjs b/scripts/precommit-server-unit.cjs index 86fdb23202..5424af05c1 100644 --- a/scripts/precommit-server-unit.cjs +++ b/scripts/precommit-server-unit.cjs @@ -104,7 +104,7 @@ function main() { } console.log(`Running ${plan.files.length} changed server unit test file(s).`); - return run('npm', ['exec', '--', 'vitest', 'run', ...plan.files]); + return run('npm', ['exec', '--', 'vitest', 'run', '--config', 'server/vitest.config.ts', ...plan.files]); } if (require.main === module) { diff --git a/server/vitest.config.ts b/server/vitest.config.ts index 43b10a4cb9..1403b12ae3 100644 --- a/server/vitest.config.ts +++ b/server/vitest.config.ts @@ -7,11 +7,9 @@ export default defineConfig({ root: __dirname, setupFiles: ['./tests/setup/revenue-tracking-env.ts'], testTimeout: 30000, - // The module-level `pool` singleton in db/index.ts is shared across all - // tests in a worker. Running files in parallel lets one file's - // `afterAll(closeDatabase)` null the pool while a sibling file is - // mid-query, producing "Database not initialized" 500s that look like - // transient Anthropic flakes. + // Keep process isolation explicit so module-level singletons (database + // pool, WorkOS client, env-cached secrets) cannot bleed between files. + pool: 'forks', fileParallelism: false, }, });