Compare commits

1 Commits

Author SHA1 Message Date
Croissant Le Doux
6bee1a12aa test: point the live milestone assertion at P5 after the backlog reconcile
Closed the 15 genuinely-shipped issues on the dogfood repo (scheduler, Monte Carlo,
calibration, lifecycle, model router, query_project, capture_work, record_directive,
etc.) so the board reflects reality: 10 open / 24 done. P2 dropped off Runway once
all its work shipped (a milestone with no open scope isn't runway — correct), so the
live spec now drills into P5 (which still has open scope) instead of P2.

No code change — this only updates the live assertion to match the reconciled backlog.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-09 01:23:56 -04:00

View File

@@ -42,16 +42,17 @@ test.describe('live backlog', () => {
win.getByText(/cold-start priors · \d+\/20 closed issues estimated|calibrated on \d+ closed/), win.getByText(/cold-start priors · \d+\/20 closed issues estimated|calibrated on \d+ closed/),
).toBeVisible() ).toBeVisible()
// Real per-milestone forecasts — these milestone names come from gitea, not the // Real per-milestone forecasts — these milestone names come from gitea, not the
// fixture (which lists Beta / Pilot-ready / v1.0). // fixture (which lists Beta / Pilot-ready / v1.0). Only milestones with open
await expect(win.getByText(/P2 — Scheduler/)).toBeVisible() // scope appear (P2 dropped off once all its work shipped — correct).
await expect(win.getByText(/P5 — Dogfood/)).toBeVisible()
// Real capacity config from pm-state (christian/stephen), not the fixture (Stephen/Ana K.) // Real capacity config from pm-state (christian/stephen), not the fixture (Stephen/Ana K.)
await expect(win.getByText('christian', { exact: true })).toBeVisible() await expect(win.getByText('christian', { exact: true })).toBeVisible()
await expect(win.getByText(/pd\/day/).first()).toBeVisible() await expect(win.getByText(/pd\/day/).first()).toBeVisible()
await win.screenshot({ path: join(here, '.artifacts', 'screens', 'live-runway.png'), fullPage: true, animations: 'disabled' }) await win.screenshot({ path: join(here, '.artifacts', 'screens', 'live-runway.png'), fullPage: true, animations: 'disabled' })
// Milestone drill-in — clicking a real milestone opens its real detail // Milestone drill-in — clicking a real milestone opens its real detail
await win.getByText(/P2Scheduler/).click() await win.getByText(/P5Dogfood/).click()
await expect(win.getByRole('heading', { name: 'P2Scheduler + Monte Carlo' })).toBeVisible() await expect(win.getByRole('heading', { name: 'P5Dogfood + polish' })).toBeVisible()
await expect(win.getByText(/\d+ issues · est \d+d/)).toBeVisible() await expect(win.getByText(/\d+ issues · est \d+d/)).toBeVisible()
await win.screenshot({ path: join(here, '.artifacts', 'screens', 'live-milestone.png'), fullPage: true, animations: 'disabled' }) await win.screenshot({ path: join(here, '.artifacts', 'screens', 'live-milestone.png'), fullPage: true, animations: 'disabled' })
await rail.getByRole('button', { name: 'Runway' }).click() await rail.getByRole('button', { name: 'Runway' }).click()