The numbering and manual-create suites both lock the number_sequences 'shared' row (SELECT ... FOR UPDATE + deleteMany); running test files in parallel raced them into a MySQL 1213 deadlock. Production never does that concurrent delete, so this is purely a parallel-test isolation fix. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
21 lines
779 B
TypeScript
21 lines
779 B
TypeScript
import { defineConfig } from "vitest/config";
|
|
import dotenv from "dotenv";
|
|
dotenv.config({ path: ".env.test", override: true });
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
globals: true,
|
|
environment: "node",
|
|
setupFiles: ["./src/__tests__/setup.ts"],
|
|
testTimeout: 15000,
|
|
hookTimeout: 15000,
|
|
exclude: ["dist/**", "node_modules/**", ".claude/**"],
|
|
// Tests run against a real shared MySQL test DB. Running test files in
|
|
// parallel lets two files (e.g. numbering + manual-create) hit the same
|
|
// `number_sequences` row with SELECT ... FOR UPDATE + deleteMany at once,
|
|
// which deadlocks (MySQL 1213). Serialise files so DB-touching suites
|
|
// don't contend. Tests within a file already run sequentially.
|
|
fileParallelism: false,
|
|
},
|
|
});
|