57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import { describe, it, expect, beforeEach, afterEach } from "bun:test";
|
||
import { LLMJudgeRunner, isLLMAvailable } from "./tier3-llm-judge.ts";
|
||
import {
|
||
setupTempDir,
|
||
cleanupTempDir,
|
||
getTempDir,
|
||
createFreshProject,
|
||
writeDoc,
|
||
} from "./fixtures.ts";
|
||
|
||
const tier3Available = isLLMAvailable();
|
||
|
||
if (!tier3Available) {
|
||
console.log("RUNE_E2E_LLM_ 环境变量未配置,Tier 3 测试已跳过");
|
||
}
|
||
|
||
describe("e2e: Tier 3", () => {
|
||
const runner = new LLMJudgeRunner();
|
||
const testFn = tier3Available ? it : it.skip;
|
||
|
||
beforeEach(async () => {
|
||
await setupTempDir();
|
||
});
|
||
|
||
afterEach(async () => {
|
||
await cleanupTempDir();
|
||
});
|
||
|
||
testFn(
|
||
"plan: 单文档输出有效行动计划",
|
||
async () => {
|
||
const config = await createFreshProject();
|
||
const result = await runner.runPlan(getTempDir(), "user-auth", "design", config);
|
||
|
||
expect(result.rawPlan).toBeDefined();
|
||
expect(result.rawPlan).toHaveProperty("actions");
|
||
const plan = result.rawPlan as { actions: unknown[] };
|
||
expect(plan.actions.length).toBeGreaterThan(0);
|
||
},
|
||
120_000,
|
||
);
|
||
|
||
testFn(
|
||
"build: 单任务输出有效行动计划",
|
||
async () => {
|
||
const config = await createFreshProject();
|
||
await writeDoc("auth", "task", "- [ ] 实现登录 API\n");
|
||
|
||
const result = await runner.runBuild(getTempDir(), "auth", config);
|
||
|
||
expect(result.rawPlan).toBeDefined();
|
||
expect(result.rawPlan).toHaveProperty("actions");
|
||
},
|
||
120_000,
|
||
);
|
||
});
|