fix: give each test worker its own SQLite database

Parallel Vitest workers were opening data/pichost.db together, so host-isolation failed with database is locked.
This commit is contained in:
O96u committed 2026-10-09 15:52:03 +08:00
1 parent 10baf9d489
commit 424bfd9090
3 files changed
+27 -2

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
import { mkdtempSync, rmSync } from 'node:fs'
import { tmpdir } from 'node:os'
import { join } from 'node:path'
import { afterAll, beforeAll } from 'vitest'
import { closeDb } from '../utils/db'
const workerId = process.env.VITEST_POOL_ID ?? String(process.pid)
const dataDir = mkdtempSync(join(tmpdir(), `pichost-test-${workerId}-`))
process.env.DATA_DIR = dataDir
beforeAll(() => {
closeDb()
})
afterAll(() => {
closeDb()
try {
rmSync(dataDir, { recursive: true, force: true })
} catch {
// Windows may still hold the sqlite file for a moment after close
}
})