fix: make public-timeline E2E specs immune to live auto-expanded cards#623
Merged
Conversation
During show hours a live event's card auto-expands, its toggle reads Hide Details, and the specs' blind first-card + "View Details" click timed out — the whole suite failed on evening CI runs only. A collapsedEventCard() helper filters to a card still showing the collapsed affordance and pins it by DOM index (Playwright locators are live — a filtered locator silently re-resolves to a different card once the clicked card's button flips). Reproduced locally: a seeded happening-now event failed the original specs 7/13 with the exact CI timeout; fixed specs pass 13/13 twice against the same state. Closes #602 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
BreakableHoodie
enabled auto-merge (squash)
July 17, 2026 14:50
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
The
e2e/public-timeline.spec.jssuite failed on evening CI runs only (#602): during show hours a live event's card auto-expands (useState(isLive)), its toggle reads "Hide Details", and seven specs' blindfirst-card → click "View Details"pattern timed out. AcollapsedEventCard(page)helper now filters to a card still showing the collapsed affordance and pins it by DOM index — the pinning matters because Playwright locators are live: a.filter()locator stops matching the moment the clicked card's button flips, silently re-resolving later queries to a different card (a second bug caught during reproduction).Reproduced, not reasoned: against a locally seeded happening-now event (no doors_json, first-set-start gating it into "Happening Now" as the true first card), the original specs failed 7/13 with the exact CI timeout signature; the fixed specs pass 13/13, twice consecutively, against the same server and DB state.
Closes #602
What changed
e2e/public-timeline.spec.jscollapsedEventCard()helper (documented: show-hours mechanism + lazy-locator pinning rationale); all 7 View-Details click sites routed through it. Full audit of every other first-card site in the file: visibility-only/count-only/nested-scope sites left as-is deliberately — none assert collapsed-state affordancesDeliberately not coupled to the
?debugTimehook (per the issue's chosen fix direction). Pre-existing prettier drift across all 8 e2e spec files left untouched — filed as #622 rather than blowing up this diff.Security / correctness notes
None — test-only change.
Verification
npm run build --prefix frontend)validate:openapi: n/aBuilt by Sonny · Reviewed by Theo · 🤖 Claude Code