Files
Moltbot/src/test-utils/fixture-suite.ts
2026-02-23 05:45:54 +00:00

30 lines
813 B
TypeScript

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<void> {
fixtureRoot = await fs.mkdtemp(path.join(os.tmpdir(), rootPrefix));
},
async cleanup(): Promise<void> {
if (!fixtureRoot) {
return;
}
await fs.rm(fixtureRoot, { recursive: true, force: true });
fixtureRoot = "";
},
async createCaseDir(prefix: string): Promise<string> {
if (!fixtureRoot) {
throw new Error("Fixture suite not initialized");
}
const dir = path.join(fixtureRoot, `${prefix}-${fixtureCount++}`);
await fs.mkdir(dir, { recursive: true });
return dir;
},
};
}