fix: complete-flow spec flaky test #1607
Draft
+19
−15
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.
Issue: #1531
Previously PRs: #1597, #1599
Description
Problem
The test complete-flow spec was flaky because it used broad page.locator("tbody") selectors to check table content. When multiple invoice rows were present, assertions were matching the entire table body instead of a specific row, causing unreliable failures.
Additionally, the date picker (React Aria spinbutton) sometimes did not fully commit the year value. In some runs, Dec 1, 2024 was being saved/rendered as Dec 1, 202, which caused the assertion to fail intermittently.
Solution
Changed from broad tbody selectors to row-specific selectors using
page.locator("tbody tr").filter({ hasText: "CUSTOM-X" }). This ensures assertions are targeted to the specific invoice row instead of the entire table body.Also stabilized the
fillDatePickerhelper by clearing the field first, typing sequentially with delay, blurring the input to trigger commit, and asserting the final value to guarantee the full year is saved.Test Results
Tested with --repeat-each=20 --workers=1 - all 20 test runs passed
Checklist
AI Disclosure
Used Claude Opus 4.5 to understand the issue and implement the fix. Code was reviewed and tested manually.