Fix intermittent Next.js e2e test failures due to race conditions and timing issues #6718
+253
−63
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.
Problem
The Next.js end-to-end tests for both
react-instantsearch-router-nextjsandreact-instantsearch-nextjspackages were failing intermittently in CI, particularly when running through SauceLabs. These failures were caused by several underlying timing and synchronization issues:browser.pause(1000)indicating known timing issuesgetValue()instead ofgetText()for an output elementSolution
Enhanced Test Utilities
Replaced the simple
waitForUrl()function with a comprehensive set of robust utilities:Added specialized utilities for different waiting scenarios:
waitForElementText()- Waits for specific text content with error handlingwaitForInputValue()- Waits for input field values with retry logicwaitForElementAttribute()- Waits for element attributes (e.g.,checkedstate)waitForPageReady()- Ensures document is fully loaded before proceedingFixed Race Conditions
Enhanced Configuration
waitforTimeoutfrom 10s to 15s,defaultTimeoutIntervalfrom 60s to 90sEliminated Hard-coded Delays
Testing
These changes address the fundamental timing and synchronization issues that were causing intermittent failures. The tests now:
The enhanced utilities ensure that URL changes, DOM updates, and user interactions are properly synchronized, eliminating the race conditions that caused flaky test behavior.
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
classic.yarnpkg.comcurl -o- -L REDACTED(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.