diff --git a/desktop/tests/e2e/claude-effort-picker.spec.ts b/desktop/tests/e2e/claude-effort-picker.spec.ts index 81d86645a5..27c086272e 100644 --- a/desktop/tests/e2e/claude-effort-picker.spec.ts +++ b/desktop/tests/e2e/claude-effort-picker.spec.ts @@ -137,7 +137,14 @@ async function payloadsFor(page: Page, command: string) { async function menuValues(page: Page, trigger: Locator) { await trigger.click(); - const rows = await page.getByRole("menuitemradio").allTextContents(); + await expect(trigger).toHaveAttribute("aria-expanded", "true"); + // A menu that just closed stays mounted during its exit animation, so read + // only the menu this trigger controls. + const menu = page.locator( + `[id="${await trigger.getAttribute("aria-controls")}"]`, + ); + await expect(menu).toBeVisible(); + const rows = await menu.getByRole("menuitemradio").allTextContents(); await page.keyboard.press("Escape"); return rows; }