mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-04 18:36:54 +02:00
feat(qa-evidence): materialize computes the phase verdict; callers must report it
Approved by Garry: the helper, not the model, decides whether evidence can
pass. materialize writes verdict {status, open} into evidence.json and prints
it: fail or blocked from row classifications, inconclusive while any row is
superseded, a complete capture is withheld, a declared required probe is
unrun or there is no evidence, else pass. The caller fixture requires
receipt.status to equal that verdict. CI late-input kept reporting pass with a
superseded happy probe.
This commit is contained in:
1 parent
1137cba7ac
commit
06545fcc30
3 files changed
+27
-5
No files matched your search
@@ -331,7 +331,10 @@ test('materialize refuses evidence whose declared input snapshot predates the la
|
||||
expect(stale.status).toBe(2);
|
||||
expect(receipt(stale.stderr).message).toContain('capture 001 observed an older input snapshot than the latest capture 002');
|
||||
f.json('annotations.json', { revision: 'fixture-revision', limits: ['Adverse coverage predates the input change.'], evidence: [{ ...rows[0], classification: 'superseded' }, rows[1]] });
|
||||
expect(f.run('materialize', f.root, 'annotations.json').status).toBe(0);
|
||||
const materialized = f.run('materialize', f.root, 'annotations.json');
|
||||
expect(materialized.status).toBe(0);
|
||||
expect(receipt(materialized.stdout).verdict).toEqual({ status: 'inconclusive', open: ['capture 001 superseded'] });
|
||||
expect(JSON.parse(fs.readFileSync(path.join(f.root, 'evidence.json'), 'utf8')).verdict.status).toBe('inconclusive');
|
||||
});
|
||||
|
||||
test('captures list declared-but-unrun required probes without judging them', () => {
|
||||
|
||||
Reference in new issue
Block a user