import { defineConfig } from 'vitest/config';

export default defineConfig({
  test: {
    globals: true,
    environment: 'node',
    // The migration suite spins up a real PGlite (WASM Postgres) instance per
    // test and applies the full drizzle migration set. Each case legitimately
    // takes ~5s locally and considerably longer on CI, where turbo runs many
    // packages' test suites concurrently. The 5s vitest default then expires
    // mid-migration and the run fails as a phantom "Test timed out in 5000ms"
    // (often surfacing the underlying WASM `memory access out of bounds` when
    // the heap is starved). Give migrations real headroom.
    testTimeout: 120_000,
    hookTimeout: 120_000,
    // Each PGlite instance carries a multi-hundred-MB WASM heap. Running test
    // files in parallel forks multiplies that peak and is what tips the CI
    // runner into the WASM OOM. A single fork keeps only one instance resident
    // at a time — slightly slower, but deterministic.
    pool: 'forks',
    poolOptions: {
      forks: { singleFork: true },
    },
  },
});
