import fs from "node:fs/promises"; import os from "node:os"; import path from "node:path"; export function createFixtureSuite(rootPrefix: string) { let fixtureRoot = ""; let fixtureCount = 0; return { async setup(): Promise { fixtureRoot = await fs.mkdtemp(path.join(os.tmpdir(), rootPrefix)); }, async cleanup(): Promise { if (!fixtureRoot) { return; } await fs.rm(fixtureRoot, { recursive: true, force: true }); fixtureRoot = ""; }, async createCaseDir(prefix: string): Promise { if (!fixtureRoot) { throw new Error("Fixture suite not initialized"); } const dir = path.join(fixtureRoot, `${prefix}-${fixtureCount++}`); await fs.mkdir(dir, { recursive: true }); return dir; }, }; }