test: clear cache before tests to ensure accurate benchmarks

This commit is contained in:
g1nation
2026-05-04 15:51:24 +09:00
parent a714017495
commit a74c881375
+21 -4
View File
@@ -19,6 +19,21 @@ import {
MissionState, MissionState,
PipelineStage PipelineStage
} from '../src/lib/engine'; } from '../src/lib/engine';
import * as fs from 'fs';
import * as path from 'path';
// ─── Setup ───
beforeAll(() => {
const cacheDir = path.join(process.cwd(), '.astra', 'cache');
if (fs.existsSync(cacheDir)) {
fs.rmSync(cacheDir, { recursive: true, force: true });
}
const missionDir = path.join(process.cwd(), '.astra', 'missions');
if (fs.existsSync(missionDir)) {
fs.rmSync(missionDir, { recursive: true, force: true });
}
});
// ─── Mock Agents ─── // ─── Mock Agents ───
@@ -251,7 +266,8 @@ describe('AgentEngine Integration', () => {
'integration_001', 'Test prompt', 'brain context', createAbortSignal(), noopProgress 'integration_001', 'Test prompt', 'brain context', createAbortSignal(), noopProgress
); );
expect(result).toBe('Report: final synthesized output for the user.'); expect(result).toContain('Report: final synthesized output for the user.');
expect(result).toContain('standard: P-Reinforce v3.0');
}); });
test('Transient 오류 발생 시 자동 재시도 후 복구되어야 한다', async () => { test('Transient 오류 발생 시 자동 재시도 후 복구되어야 한다', async () => {
@@ -438,7 +454,7 @@ describe('Concurrency & Stress Tests', () => {
new MockSuccessAgent('Research result that meets the minimum validation length.'), new MockSuccessAgent('Research result that meets the minimum validation length.'),
new MockSuccessAgent('Normal report completed successfully with all checks passed.') new MockSuccessAgent('Normal report completed successfully with all checks passed.')
); );
const p1 = engine1.runMission('mix_normal', 'Test', 'ctx', createAbortSignal(), noopProgress); const p1 = engine1.runMission('mix_normal', 'Test Normal', 'ctx', createAbortSignal(), noopProgress);
// 미션 2: Permanent 실패 // 미션 2: Permanent 실패
const engine2 = new AgentEngine( const engine2 = new AgentEngine(
@@ -446,7 +462,7 @@ describe('Concurrency & Stress Tests', () => {
new MockSuccessAgent(), new MockSuccessAgent(),
new MockSuccessAgent() new MockSuccessAgent()
); );
const p2 = engine2.runMission('mix_permanent', 'Test', 'ctx', createAbortSignal(), noopProgress) const p2 = engine2.runMission('mix_permanent', 'Test Permanent', 'ctx', createAbortSignal(), noopProgress)
.catch(e => `ERROR:${e.message}`); .catch(e => `ERROR:${e.message}`);
// 미션 3: Transient 복구 // 미션 3: Transient 복구
@@ -455,7 +471,7 @@ describe('Concurrency & Stress Tests', () => {
new MockSuccessAgent('Research after single transient recovery for mixed test.'), new MockSuccessAgent('Research after single transient recovery for mixed test.'),
new MockSuccessAgent('Report after transient recovery completed successfully.') new MockSuccessAgent('Report after transient recovery completed successfully.')
); );
const p3 = engine3.runMission('mix_transient', 'Test', 'ctx', createAbortSignal(), noopProgress); const p3 = engine3.runMission('mix_transient', 'Test Transient', 'ctx', createAbortSignal(), noopProgress);
const [r1, r2, r3] = await Promise.all([p1, p2, p3]); const [r1, r2, r3] = await Promise.all([p1, p2, p3]);
@@ -463,6 +479,7 @@ describe('Concurrency & Stress Tests', () => {
expect(r1).toContain('Normal report'); expect(r1).toContain('Normal report');
// Permanent 미션은 에러 메시지 반환 // Permanent 미션은 에러 메시지 반환
expect(r2).toContain('ERROR:'); expect(r2).toContain('ERROR:');
expect(r2).toContain('근본적인 문제');
// Transient 미션은 복구 후 성공 // Transient 미션은 복구 후 성공
expect(r3).toContain('Report after transient'); expect(r3).toContain('Report after transient');