From 1d9c83b576c51623f81014c94ce68c85734434fa Mon Sep 17 00:00:00 2001 From: Luke Parker <10430890+Hona@users.noreply.github.com> Date: Thu, 12 Mar 2026 12:03:38 +1000 Subject: [PATCH] fix(e2e): re-focus prompt after terminal opens in slash-terminal test (#17113) --- .../app/e2e/prompt/prompt-slash-terminal.spec.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/app/e2e/prompt/prompt-slash-terminal.spec.ts b/packages/app/e2e/prompt/prompt-slash-terminal.spec.ts index bf9f96b47..793b34ff8 100644 --- a/packages/app/e2e/prompt/prompt-slash-terminal.spec.ts +++ b/packages/app/e2e/prompt/prompt-slash-terminal.spec.ts @@ -6,16 +6,24 @@ test("/terminal toggles the terminal panel", async ({ page, gotoSession }) => { const prompt = page.locator(promptSelector) const terminal = page.locator(terminalSelector) + const slash = page.locator('[data-slash-id="terminal.toggle"]').first() await expect(terminal).not.toBeVisible() await prompt.fill("/terminal") - await expect(page.locator('[data-slash-id="terminal.toggle"]').first()).toBeVisible() + await expect(slash).toBeVisible() await page.keyboard.press("Enter") await expect(terminal).toBeVisible() - await prompt.fill("/terminal") - await expect(page.locator('[data-slash-id="terminal.toggle"]').first()).toBeVisible() + // Terminal panel retries focus (immediate, RAF, 120ms, 240ms) after opening, + // which can steal focus from the prompt and prevent fill() from triggering + // the slash popover. Re-attempt click+fill until all retries are exhausted + // and the popover appears. + await expect.poll(async () => { + await prompt.click().catch(() => false) + await prompt.fill("/terminal").catch(() => false) + return slash.isVisible().catch(() => false) + }, { timeout: 10_000 }).toBe(true) await page.keyboard.press("Enter") await expect(terminal).not.toBeVisible() })