Skip to content

test(rsc): make e2e file editor async and space out writes - #1489

Merged
hi-ogawa merged 4 commits into
mainfrom
test/rsc-e2e-async-editor
Oct 5, 2026
Merged

hi-ogawa merged 4 commits into
mainfrom
test/rsc-e2e-async-editor

Conversation

@hi-ogawa

@hi-ogawa hi-ogawa commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Back-to-back file edits in e2e could be silently dropped. Vite's file watcher ignores a change that arrives within 50ms of the previous one for the same path, so when the HMR round trip was fast, a test's reset landed inside that window and the dev server never saw it. The dev server then kept the edited content, and the test timed out waiting for the original text, as in the failure linked above.

The test file editor now waits at least 100ms between writes to the same file. Waiting needs to be async, so editing, resetting, and resaving now return promises and every test awaits them. The delay only happens when two writes to one file come back to back.

await editor.edit((s) => s.replace('Client Counter', 'Client [edit] Counter'))
await expect(page.getByRole('button', { name: 'Client [edit] Counter: 1' })).toBeVisible()
await editor.reset()

A missing await would not fail loudly, because the write would just happen a moment later. The e2e directory has no lint step to catch that, so every call site was updated in one pass.

Vite's watcher drops a change event within 50ms of the previous one for
the same path, so a fast edit-then-reset could lose the reset. Make the
editor's edit/reset/resave async and wait at least 100ms between writes
to the same file.

Co-authored-by: James <[email protected]>
Co-Authored-By: Claude Opus 5.5 <[email protected]>
hi-ogawa added a commit that referenced this pull request Oct 5, 2026
The editor write-spacing fix moves to its own PR, which makes the editor API async instead of sleeping synchronously.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
hi-ogawa and others added 3 commits October 5, 2026 17:40
@hi-ogawa
hi-ogawa marked this pull request as ready for review October 5, 2026 08:58
hi-ogawa added a commit to james-elicx/vite-plugin-react that referenced this pull request Oct 5, 2026
…-entry

Take main's e2e/fixture.ts and e2e/use-cache-persistent.test.ts. The e2e
deflake fixes from this PR landed separately in vitejs#1487, with the write
spacing moved to vitejs#1489.
@hi-ogawa
hi-ogawa merged commit 8063121 into main Oct 5, 2026
24 checks passed
@hi-ogawa
hi-ogawa deleted the test/rsc-e2e-async-editor branch October 5, 2026 09:16
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.

1 participant