diff --git a/apps/desktop/e2e/live-backlog.spec.ts b/apps/desktop/e2e/live-backlog.spec.ts index 4362ea2..4e5e728 100644 --- a/apps/desktop/e2e/live-backlog.spec.ts +++ b/apps/desktop/e2e/live-backlog.spec.ts @@ -42,16 +42,17 @@ test.describe('live backlog', () => { win.getByText(/cold-start priors · \d+\/20 closed issues estimated|calibrated on \d+ closed/), ).toBeVisible() // Real per-milestone forecasts — these milestone names come from gitea, not the - // fixture (which lists Beta / Pilot-ready / v1.0). - await expect(win.getByText(/P2 — Scheduler/)).toBeVisible() + // fixture (which lists Beta / Pilot-ready / v1.0). Only milestones with open + // 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.) await expect(win.getByText('christian', { exact: true })).toBeVisible() await expect(win.getByText(/pd\/day/).first()).toBeVisible() 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 - await win.getByText(/P2 — Scheduler/).click() - await expect(win.getByRole('heading', { name: 'P2 — Scheduler + Monte Carlo' })).toBeVisible() + await win.getByText(/P5 — Dogfood/).click() + await expect(win.getByRole('heading', { name: 'P5 — Dogfood + polish' })).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 rail.getByRole('button', { name: 'Runway' }).click()