🤖 tests: disable tutorials in e2e harness#3552
Merged
Merged
Conversation
Root cause: the e2e fixture only marked the pre-existing tutorial sequences completed, so the review tutorial still started 500ms after ReviewControls mounted. On slower Linux CI runs, its backdrop covered the sortable tab strip and Playwright timed out clicking the Stats tab in reviewRefresh.spec.ts. Fix: persist a fully disabled tutorial state for e2e windows before React mounts, and add a reviewRefresh regression assertion that waits past the tutorial timer and verifies no backdrop appears before switching tabs. Validation: bun test src/browser/contexts/TutorialContext.test.tsx; make typecheck; make static-check. Local Electron e2e launch is blocked in this workspace by missing X server / xvfb, so CI will run the targeted scenario. --- _Generated with `mux` • Model: `openai:gpt-5.5` • Thinking: `xhigh` • Cost: `$unknown`_ <!-- mux-attribution: model=openai:gpt-5.5 thinking=xhigh costs=unknown -->
Member
Author
|
@codex review |
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the
review refresh › refresh state persists after tab switchLinux E2E flake by fully disabling tutorials in the Electron E2E harness before the renderer reloads.Background
I reviewed
/memories/project/known-flaky-tests.mdand surveyed PR workflow failures from the last 14 days. Among the named flaky tests in that file,tests/e2e/scenarios/reviewRefresh.spec.ts:100had the most exact failures (4), compared withbackgroundBashDirect.test.ts(2). The failing logs show Playwright timing out on the Stats tab because<div data-testid="tutorial-backdrop">intercepted pointer events.Root Cause
The E2E fixture tried to disable tutorials by marking the then-known sequences completed, but it left the newer
reviewtutorial sequence incomplete and keptdisabled: false.ReviewControlsstarts the review tutorial 500ms after mount, so slower CI runs could reveal the backdrop just before the test clicked the Stats tab.Implementation
disabled: truein the E2E tutorial state and mark current tutorial sequences completed before React reads localStorage.Validation
bun test src/browser/contexts/TutorialContext.test.tsxmake typecheckmake static-checkLocal targeted Electron E2E execution is blocked in this workspace by the missing X server /
xvfb(Missing X server or $DISPLAY). The new regression assertion is intended to run in CI's Linux E2E environment.Risks
Low. The change is confined to the E2E harness and one E2E regression assertion; production tutorial behavior is unchanged.
Generated with
mux• Model:openai:gpt-5.5• Thinking:xhigh• Cost:$unknown