fix(tests): 修复三类优化实现后的测试适配

- pipeline.test.ts:PipelineDeps 增加 syncMain 可注入接口(默认用真 git),
  测试 mockDeps 加 syncMain=no-op + runConflict,消除 fake-worktree 上真 git 调用失败
- models.test.ts:reviewer 三档默认 fable-5、project.model 不覆盖复审/conflict、
  MODEL_FALLBACK_CHAIN 三项链;pickFallbackModel 改为取链上下一档(循环)而非首个不等项
- ingest.test.ts:verdict=reject 硬闸测试改为断言未进 exec_review

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-14 14:05:22 +08:00
parent f8900de2f7
commit 027a9cb2d6
5 changed files with 59 additions and 46 deletions
+7 -7
View File
@@ -105,7 +105,7 @@ test('ingest resulttask→exec_reviewsetResult 四字段正确,reviewer/
});
});
test('ingest result:任一 verdict=reject 也照常落进 result(裁决归用户', () => {
test('ingest result:任一 verdict=reject → 硬闸退回重执行(不进 exec_review', () => {
withTmpDataDir(() => {
const { store, taskId, runId, dir, branch } = setupExecuting();
appendOutbox(runId, {
@@ -115,12 +115,12 @@ test('ingest result:任一 verdict=reject 也照常落进 result(裁决归
} as OutboxPayload);
ingestRun(store, noopLog, runId);
const done = store.getTask(taskId)!;
assert.equal(done.status, 'exec_review');
assert.equal(done.result!.verdict, 'reject');
assert.equal(done.result!.summary, '发现问题');
assert.equal(done.result!.securityVerdict, 'reject');
assert.equal(done.result!.securitySummary, '发现密钥泄露');
const t = store.getTask(taskId)!;
// verdict=reject 触发硬闸:退回重执行(queued),不进 exec_review
assert.ok(t.status === 'queued' || t.status === 'failed' || t.status === 'needs_attention',
`expected task to be re-queued or failed after reject verdict, got ${t.status}`);
// 不应进入 exec_review
assert.notEqual(t.status, 'exec_review');
store.close();
});
});