feat: 创建测试夹具工具函数
This commit is contained in:
46
tests/agent/fixtures.ts
Normal file
46
tests/agent/fixtures.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import { existsSync } from "node:fs";
|
||||
import { mkdir, writeFile, rm } from "node:fs/promises";
|
||||
import { join } from "node:path";
|
||||
import { runInit } from "../../src/commands/init.ts";
|
||||
import { loadConfig, getChangeDir } from "../../src/core/config.ts";
|
||||
import type { RuneConfig } from "../../src/types.ts";
|
||||
|
||||
const TMP_DIR = join(import.meta.dir, "__tmp_agent_test__");
|
||||
|
||||
export function getTempDir(): string {
|
||||
return TMP_DIR;
|
||||
}
|
||||
|
||||
export async function setupTempDir(): Promise<void> {
|
||||
await rm(TMP_DIR, { recursive: true, force: true });
|
||||
await mkdir(TMP_DIR, { recursive: true });
|
||||
}
|
||||
|
||||
export async function cleanupTempDir(): Promise<void> {
|
||||
await rm(TMP_DIR, { recursive: true, force: true });
|
||||
}
|
||||
|
||||
export async function createFreshProject(editors: string[] = ["opencode"]): Promise<RuneConfig> {
|
||||
await runInit(TMP_DIR, editors);
|
||||
return loadConfig(TMP_DIR);
|
||||
}
|
||||
|
||||
export async function createChangeDir(changeName: string): Promise<string> {
|
||||
const dir = getChangeDir(TMP_DIR, changeName);
|
||||
await mkdir(dir, { recursive: true });
|
||||
return dir;
|
||||
}
|
||||
|
||||
export async function writeDoc(
|
||||
changeName: string,
|
||||
docName: string,
|
||||
content: string,
|
||||
): Promise<void> {
|
||||
const dir = getChangeDir(TMP_DIR, changeName);
|
||||
await mkdir(dir, { recursive: true });
|
||||
await writeFile(join(dir, `${docName}.md`), content);
|
||||
}
|
||||
|
||||
export function changeFileExists(changeName: string, fileName: string): boolean {
|
||||
return existsSync(join(getChangeDir(TMP_DIR, changeName), fileName));
|
||||
}
|
||||
Reference in New Issue
Block a user