test(qa-functional): fix mode requires only the happy scenario from the model (carried byte-identical from #3002 183b01f4..3e6074b4)

verifyQANativeRegression already reruns all eight webhook scenarios on the
repaired source, so the model-side eight-scenario requirement in fix mode
duplicated harness coverage and pushed qa-functional-webhook-fix past its
budget. qa-only still requires every scenario.
This commit is contained in:
garrytan committed 2026-09-30 18:34:36 +00:00
1 parent 1643cd94de
commit 271c14078b
4 files changed
+37 -13

No files matched your search

+16
View File
@@ -188,6 +188,22 @@ describe('functional evidence and native regression controls', () => {
} finally { fixture.cleanup(); }
});
test('webhook scenario coverage binds the report-only run; the fix run needs the happy path and relies on the post-repair recheck of all eight', () => {
const fixture = createQAFunctionalFixture('webhook');
try {
const calls: NativeCall[] = [{ tool: 'Read', input: { file_path: 'qa/sections/system-functional.md' }, output: 'Functional QA native instruction read '.repeat(8) }];
for (const scenario of ['happy', 'concurrent-ab', 'concurrent-ab', 'cancel', 'dependency']) recordedProbe(fixture, calls, ['probe.ts', scenario]);
const result = nativeCapture(calls);
const section = { path: 'qa/sections/system-functional.md', content: calls[0]!.output };
const missing = (mode: 'qa' | 'qa-only') => qaFunctionalVerdict(fixture, mode, result, observation, {}, section)
.filter(failure => /^missing native [a-z-]+ probe$/.test(failure)).sort();
expect(missing('qa-only')).toEqual(['missing native duplicate probe', 'missing native partial probe', 'missing native reject probe', 'missing native concurrent-ba probe'].sort());
expect(missing('qa')).toEqual([]);
const noHappy = nativeCapture(calls.filter(call => !(call.tool === 'Bash' && call.input.command === 'bun run probe -- happy')));
expect(qaFunctionalVerdict(fixture, 'qa', noHappy, observation, {}, section)).toContain('missing native happy probe');
} finally { fixture.cleanup(); }
});
test('native-shaped adverse receipts cannot hide stream, input, state or interruption failures', () => {
const cli = createQAFunctionalFixture('cli', { healthy: true });
const webhook = createQAFunctionalFixture('webhook', { healthy: true });