Files
gstack/test/codex-eval-selection.test.ts
T
garrytan 53e7f3212f test: clean up the paid eval lane (B1-B4, B6, B7)
- B1: delete paid files that assert nothing or cannot pass meaningfully:
  skill-llm-eval-spec and skill-e2e-spec-execute (test.todo), gemini-e2e
  (+ gemini-session-runner; no gemini CLI in CI), ship-idempotency (red
  since v1.63), the two opus-4-7 *-sonnet overlay wrappers, conductor-prose
  (+ its source-evaluation replay), codex-e2e-plan-format; drop their keys,
  scripts and census rows.
- B2: skill-llm-eval grades browse/sections/command-list.md with one union
  judge that also carries the baseline score pin; regression-vs-baseline
  deleted (paid run: pass, c4/c4/a4).
- B3: memory-pipeline, ios-qa, ios-qa-swift-build and plan-tune-cathedral
  make no model calls; renamed out of the paid glob so they run on every
  PR. Swift builds need GSTACK_TEST_SWIFT=1; device stub deleted.
- B4: codex-e2e*, outside-voice, aside and ios-device cannot run in the CI
  image; excluded from the weekly lane with a tracked re-entry condition.
- B6: fold opus-47's negative routing controls into skill-routing-e2e
  journey-negatives (paid run: 3/3 unrouted) and delete the file.
- B7: delete the never-green brain-privacy-gate eval; a free
  gstack-skill-start test now proves consent precedes artifacts egress.
2026-09-29 06:08:49 +00:00

27 lines
1.0 KiB
TypeScript

import { describe, expect, test } from 'bun:test';
import { E2E_TIERS, E2E_TOUCHFILES, GLOBAL_TOUCHFILES, selectTests } from './helpers/touchfiles';
function selectedBy(file: string) {
return selectTests([file], E2E_TOUCHFILES, GLOBAL_TOUCHFILES).selected;
}
describe('Codex eval selection', () => {
test('recording-helper changes select every recorded Codex case in the periodic tier', () => {
const selected = selectedBy('test/helpers/codex-eval.ts');
expect(selected.sort()).toEqual([
'codex-discover-skill',
'codex-review-findings',
'codex-sol-scope-termination',
].sort());
expect(selected.every((id) => E2E_TIERS[id] === 'periodic')).toBe(true);
});
test('Sol fixture generation changes select its periodic case', () => {
for (const file of ['test/helpers/sol-skill-fixture.ts', 'test/sol-skill-fixture.test.ts']) {
expect(selectedBy(file)).toEqual(['codex-sol-scope-termination']);
}
expect(E2E_TIERS['codex-sol-scope-termination']).toBe('periodic');
});
});