mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-28 18:33:37 +00:00
28 lines
836 B
TypeScript
28 lines
836 B
TypeScript
import fs from "node:fs";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
import { afterEach } from "vitest";
|
|
|
|
export const pluginTestRepoRoot = path.resolve(import.meta.dirname, "../..");
|
|
|
|
const tempDirs: string[] = [];
|
|
|
|
export function writeJson(filePath: string, value: unknown): void {
|
|
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
fs.writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`, "utf8");
|
|
}
|
|
|
|
export function createGeneratedPluginTempRoot(prefix: string): string {
|
|
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), prefix));
|
|
tempDirs.push(tempRoot);
|
|
return tempRoot;
|
|
}
|
|
|
|
export function installGeneratedPluginTempRootCleanup() {
|
|
afterEach(() => {
|
|
for (const dir of tempDirs.splice(0, tempDirs.length)) {
|
|
fs.rmSync(dir, { recursive: true, force: true });
|
|
}
|
|
});
|
|
}
|