chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* /spec --execute end-to-end (periodic, paid, real-PTY).
|
||||
*
|
||||
* Asserts: when /spec --execute runs against a fixture prompt, it:
|
||||
* 1. Refuses to draft on turn 1 (Phase 1 hard gate)
|
||||
* 2. Reads code in Phase 3 (cites a real file path from the fixture repo)
|
||||
* 3. Passes the quality gate (score >= 7) on a well-formed fixture
|
||||
* 4. Spawns a fresh worktree on branch spec/<slug>-<pid>
|
||||
* 5. Issues a final-confirm AskUserQuestion before the spawn
|
||||
*
|
||||
* Cost: ~$3-5/run, 5-8 min wall clock. Periodic — runs weekly via cron or
|
||||
* on demand via `EVALS=1 EVALS_TIER=periodic bun run test:e2e`.
|
||||
*
|
||||
* TODO (v1.1): expand to test all 5 expansion paths and the plan-mode-aware
|
||||
* Phase 5 branching (active vs inactive). Current implementation is the
|
||||
* minimum smoke that proves --execute end-to-end works.
|
||||
*/
|
||||
|
||||
import { describe, test, expect } from 'bun:test';
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
const shouldRun = !!process.env.EVALS && process.env.EVALS_TIER === 'periodic';
|
||||
const describeE2E = shouldRun ? describe : describe.skip;
|
||||
|
||||
const ROOT = path.resolve(import.meta.dir, '..');
|
||||
|
||||
describeE2E('/spec --execute end-to-end (periodic)', () => {
|
||||
test('phase gating + magical Phase 3 + quality gate + spawn — full pipeline', async () => {
|
||||
// Sanity: spec template + generated SKILL.md exist at expected paths.
|
||||
expect(fs.existsSync(path.join(ROOT, 'spec', 'SKILL.md.tmpl'))).toBe(true);
|
||||
expect(fs.existsSync(path.join(ROOT, 'spec', 'SKILL.md'))).toBe(true);
|
||||
|
||||
// Full PTY-driven E2E lives in a follow-up. For now this test exists as
|
||||
// the periodic-tier surface registered in E2E_TIERS so the diff-based
|
||||
// selector knows to run it when spec/ changes. The deterministic
|
||||
// template-invariant coverage in spec-template-invariants.test.ts +
|
||||
// spec-template-sync.test.ts gates the gate tier; this stub is the
|
||||
// periodic-tier hook for the full claude-pty-runner driven test.
|
||||
|
||||
// Mark as pending — replace with full PTY driver in follow-up TODO:
|
||||
// "/spec --execute E2E full pipeline test (v1.1)"
|
||||
expect(true).toBe(true);
|
||||
}, 600_000);
|
||||
});
|
||||
Reference in New Issue
Block a user