Files
gstack/test/qa-evidence-selection.test.ts
T
garrytan b421bba2c9 Merge origin/main (v1.91.7.0) into test-audit-reduction
Keep both intents: v1.91.7.0's functional QA, docsync and exploratory
paid cases and their free owners stay; this branch's deletions stay
deleted. main's new paid keys follow the derived-closure touchfile rule
(free *.test.ts paths dropped, static helper/fixture closure added), its
new helper-only tests join the ratchet baseline, and its free selection
examples that named free test files now assert the derived selection.

Periodic CI keeps seven slices without the retired Autoplan slice; the
gate census keeps seven single-worker slices with --skip-judges. Wall
and census literals are recomputed from the merged planner, durations
are re-recorded on Ubicloud, and VERSION stays 1.91.8.0 above 1.91.7.0.
2026-09-29 13:48:02 +00:00

23 lines
1.4 KiB
TypeScript

import { expect, test } from 'bun:test';
import { E2E_TOUCHFILES, selectTests } from './helpers/touchfiles';
import { QA_EVIDENCE_RUNTIME } from './helpers/qa-evidence-producer';
import { curateWindowsSafe } from '../scripts/test-free-shards';
const consumers = ['qa-functional-cli-report', 'qa-functional-webhook-report', 'qa-functional-cli-fix', 'qa-functional-webhook-fix',
'review-exploratory-small-cli', 'ship-exploratory-small-cli', 'ship-exploratory-unavailable', 'ship-exploratory-plan-checks', 'ship-exploratory-late-input'];
test.each([...QA_EVIDENCE_RUNTIME, 'test/helpers/qa-evidence-producer.ts'])('%s selects every real production capture consumer', file => {
const selected = selectTests([file], E2E_TOUCHFILES).selected;
for (const consumer of consumers) expect(selected).toContain(consumer);
});
test.each(['bin/gstack-qa-evidence', 'lib/qa-evidence.ts'])('%s remains scoped to actual capture consumers', file => {
expect(selectTests([file], E2E_TOUCHFILES).selected.sort()).toEqual([...consumers].sort());
});
test('Windows runs the actual capture/job tests and keeps Linux native observation coverage separate', () => {
const selected = curateWindowsSafe(['test/qa-evidence.test.ts', 'test/qa-evidence-producer.test.ts']);
expect(selected.safe).toEqual(['test/qa-evidence.test.ts']);
expect(selected.excluded.map(entry => entry.file)).toEqual(['test/qa-evidence-producer.test.ts']);
});