Repository navigation
test(webviews): B4 waits for conditions, not fixed times (97 waits) - #23585
Conversation
Removes all 101 fixed waits in the 17 B4 browser tests and drops their baseline rows. - Settling after hover, focus, press and Escape waits for painted frames (installPaintedFrames) plus the element's own CSS animations and transitions finishing, or for the exact state the test then asserts (:hover, aria-expanded, open chips, focus). - Wheel and scroll waits wait until the wheel events arrived and the scroll offsets hold steady across painted frames. - "Nothing was sent" checks use a later action as the signal the page has processed the input (a later Delete or Approve, a streamed chunk drawing), then assert the absence. - The settings dev servers start in-process with vite listen() instead of a spawned server and a fetch poll. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?harness=claude&session=01a15c78-27ca-7140-a6c7-95f0db83b18c&host=huge-blue
…its/b4 # Conflicts: # webviews/scripts/fixed-waits-baseline.tsv # webviews/test/composer-draft-wrap.test.ts
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base b035c0b; does not block Tour of |
|
Owned by window-focus-opacity on huge-blue · session |
|
Bead |
…its/b4 # Conflicts: # webviews/scripts/fixed-waits-baseline.tsv
|
Found 9 test failures on Blacksmith runners: Failures
|
|
Review (subagent): SHIP at 1c1d76d. That covers the full review, the conflict resolution (draft-wrap takes base #23489) and an interdiff re-review of the latest base merge. The baseline only drops this PR's 16 rows. CI: 91 passed, 1 failed. The red is cmux-next checks / Tier routing: tests/test_cmux_next_route.py fails 2 of 34 on base too, from #22683's CmuxNextChiefViewsTests target, so it isn't this PR's (webview tests only). |
|
Shipped in:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Fourth browser batch of the fixed-wait sweep. It removes 97 fixed waits in 16 test files, and none are kept with a marker. The batch started with 17 files; base's #23489 already rewrote composer-draft-wrap's waits, so this PR takes base's version of that file.
:hover,aria-expanded, the open chips).afterAll, the way agent-pane-attach-typing does, instead of polling a spawned server.caughtUp()streams a chunk and waits for it to be drawn.open().pkill -f. It matched only that agent's own shell.Files:
webviews/test/agent-pane-permission-deny-feedback.test.tswebviews/test/agent-pane-permission-queue.test.tswebviews/test/agent-pane-queue-steer.test.tswebviews/test/agent-pane-queue.test.tswebviews/test/agent-pane-transcript-spacing.test.tswebviews/test/composer-caret-focus.test.tswebviews/test/composer-location-strip.test.tswebviews/test/composer-menu-dismiss.test.tswebviews/test/composer-quiet-chips.test.tswebviews/test/hover-row-sweep.test.tswebviews/test/markdown-wide-table-scroll.test.tswebviews/test/newtab-quiet-focus.test.tswebviews/test/popup-reduce-motion.test.tswebviews/test/settings-scroll.test.tswebviews/test/settings-search-results.test.tswebviews/test/transcript-follow.test.tsChecks: the baseline only goes down. Measured against base with the lane's row check, no row is raised or added, and every changed row belongs to a file this PR changes.
check:fixed-waits,check:browser-lanes,bun run checkandscripts/web-lint.shpass on the merged head. Each changed file ran 3 times withCMUX_BROWSER_TESTS=1, one browser file at a time.Agent session: huge-blue
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Replaces 97 fixed waits across 16 webviews browser tests with condition-based waits, so tests no longer rely on arbitrary timeouts.
:hover,aria-expanded, open chips).settings-scroll,settings-search-results) now start in-process on port 0 and close inafterAllinstead of spawning and polling a server.composer-location-striptest fails on unchanged base too; four frame waits rely only on the test timeout;settings-scrolladds a wheel listener on everyopen().Written for commit 1c1d76d. Summary will update on new commits.