packages/db's migrate.test.ts spins up a real PGlite (WASM Postgres)
instance per test and applies the full drizzle migration set. Each case
takes ~3-5s locally and longer on CI, where turbo runs ~20 packages'
suites concurrently. Two failure modes resulted, bouncing between the
push/ci and pr/ci pipelines on identical SHAs:
FAIL src/migrate.test.ts > runPgliteMigrations > ...
Error: Test timed out in 5000ms.
-> memory access out of bounds (wasm:/wasm/...)
1. The 5s vitest default timeout expires mid-migration -> phantom
'Test timed out in 5000ms'. Raise testTimeout/hookTimeout to 120s so
legitimately-slow migrations finish.
2. Each PGlite WASM heap is multi-hundred-MB (RSS ~705MB for this file
alone); parallel forks multiply the peak and tip the runner into the
WASM OOM. Pin the package to a single fork so only one instance is
resident at a time.
Also register packages/db/vitest.config.ts in eslint's allowDefaultProject
(alongside the gateway/storage vitest configs) so the typed lint can parse
the now-non-trivial config.
Verified: full db suite green 3x locally with the new config; each run
~13s, no timeouts, no OOM. eslint clean on both files.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>