Skip to content

test(app): deflake slash terminal toggle flow#17881

Merged
Hona merged 4 commits intoanomalyco:devfrom
Hona:fix/slash-terminal-flake
Mar 17, 2026
Merged

test(app): deflake slash terminal toggle flow#17881
Hona merged 4 commits intoanomalyco:devfrom
Hona:fix/slash-terminal-flake

Conversation

@Hona
Copy link
Member

@Hona Hona commented Mar 17, 2026

Summary

  • add e2e prompt and terminal probes so tests can wait for slash selection and post-open terminal focus retries deterministically
  • deflake /terminal toggles the terminal panel by driving slash execution through a semantic helper instead of transient DOM visibility
  • reuse terminal focus-idle waits in related terminal keybind and init tests

Testing

  • bun typecheck
  • bun test:e2e:local -- e2e/prompt/prompt-slash-terminal.spec.ts --repeat-each 30 --workers 5
  • bun test:e2e:local -- e2e/settings/settings-keybinds.spec.ts -g "changing terminal toggle keybind works" --workers 1
  • bun test:e2e:local -- e2e/terminal/terminal-init.spec.ts --workers 1

@Hona Hona requested a review from adamdotdevin as a code owner March 17, 2026 02:07
Copilot AI review requested due to automatic review settings March 17, 2026 02:07
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the determinism of Playwright E2E tests around the prompt slash popover and the terminal panel by adding probe-based signals (instead of relying on transient DOM visibility/focus timing), and refactors affected tests to use semantic helpers.

Changes:

  • Add prompt E2E probing (window.__opencode_e2e.prompt.current) to observe slash popover state and selections.
  • Add terminal “focus retry in-flight” probing (focusing) and a waitTerminalFocusIdle() helper to avoid races with terminal focus retries.
  • Update flaky /terminal and related terminal tests to use runPromptSlash() + focus-idle waits.

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/app/src/testing/terminal.ts Extends terminal probe state with focusing + adds focus()/step() to track focus retry drain.
packages/app/src/testing/prompt.ts Introduces prompt probe API for slash popover state + selection counters.
packages/app/src/pages/session/terminal-panel.tsx Marks focus retry attempts in the terminal probe so E2E can wait for focus to settle.
packages/app/src/components/prompt-input.tsx Publishes slash popover state via promptProbe.set() and records selections via promptProbe.select().
packages/app/e2e/actions.ts Adds waitTerminalFocusIdle(), showPromptSlash(), and runPromptSlash() helpers driven by probe state.
packages/app/e2e/fixtures.ts Enables the new prompt probe in addInitScript for E2E runs.
packages/app/e2e/terminal/terminal-init.spec.ts Uses waitTerminalFocusIdle() to avoid focus-related flakiness after opening terminal.
packages/app/e2e/settings/settings-keybinds.spec.ts Uses waitTerminalFocusIdle() after toggling terminal via keybind.
packages/app/e2e/prompt/prompt-slash-terminal.spec.ts Replaces DOM-visibility-driven flow with runPromptSlash() + terminal focus-idle wait.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@Hona Hona merged commit e416e59 into anomalyco:dev Mar 17, 2026
11 of 12 checks passed
ConanXu-math pushed a commit to ConanXu-math/opencode that referenced this pull request Mar 17, 2026
AvatarGanymede pushed a commit to AvatarGanymede/opencode-dev that referenced this pull request Mar 19, 2026
demostanis pushed a commit to demostanis/opencode that referenced this pull request Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants