From 3ec4b02f6424a755394854c65a44937a6435f146 Mon Sep 17 00:00:00 2001 From: Dotta Date: Mon, 21 Sep 2026 20:14:49 -0500 Subject: [PATCH] fix(e2e): allow blocker attention in accessible status labels Use the captured live status button label shape while preserving exact persisted-state assertions. Both captured Blocked labels and wrong-status controls pass headless Chrome calibration. Co-Authored-By: Paperclip --- tests/runner-e2e/runner.spec.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tests/runner-e2e/runner.spec.ts b/tests/runner-e2e/runner.spec.ts index 61480bcade8..eabff8c9509 100644 --- a/tests/runner-e2e/runner.spec.ts +++ b/tests/runner-e2e/runner.spec.ts @@ -2349,11 +2349,13 @@ for (const execution of executions) { // The fixture owns the expected disposition; blocked workflows must prove // their Blocked UI rather than inheriting the completion-only Done check. const expectedStatus = execution.task.expectedTerminalState.issue; - const expectedStatusLabel = expectedStatus.replace(/_/g, " ").replace(/^./, (letter) => letter.toUpperCase()); + const expectedStatusLabel = expectedStatus.replace(/_/g, " ").replace(/\b\w/g, (letter) => letter.toUpperCase()); await expect( page.getByTestId("issue-detail-header").getByRole("button", { - name: `Change status (current: ${expectedStatusLabel})`, - exact: true, + // Blocked includes the live blocker-attention explanation in its + // accessible name. The exact persisted status is asserted separately. + name: `Change status (current: ${expectedStatusLabel}${expectedStatus === "blocked" ? "" : ")"}`, + exact: expectedStatus !== "blocked", }), ).toBeVisible({ timeout: 30_000 }); if (execution.task.flow === "warm_three_turn") {