test(e2e): wait for app readiness before interactions#65
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 12, 2026, 9:54 PM ET / July 13, 2026, 01:54 UTC. Summary Reproducibility: not applicable. as a user-facing bug reproduction; the PR instead supplies targeted repeated E2E runs showing that the previously flaky interaction paths remain stable after the harness change. Review metrics: 2 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Security Review detailsBest possible solution: Land the focused readiness waits after required checks complete, preserving normal Playwright timeouts and parallelism rather than introducing sleeps, forced clicks, suite retries, or worker serialization. Do we have a high-confidence way to reproduce the issue? Not applicable as a user-facing bug reproduction; the PR instead supplies targeted repeated E2E runs showing that the previously flaky interaction paths remain stable after the harness change. Is this the best way to solve the issue? Yes; waiting on an existing post-mount readiness signal and retrying only idempotent modal setup actions is narrower and more maintainable than sleeps, forced clicks, suite retries, or worker serialization. AGENTS.md: found, but no applicable review policy affected this item. Codex review notes: model internal, reasoning high; reviewed against 701505b94733. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Summary
data-connectedreadiness signal before post-navigation interactionsDiagnosis
The named failures are hydration/readiness races, not Go server contention. SSR exposes the sidebar controls before Svelte binds their handlers, so an early settings or mobile-navigation click can be lost; the failing runs still showed fast API responses. The settings modal also refreshes its user state on mount, which can detach the rail once before it settles.
This keeps Playwright's normal timeouts and worker parallelism. It does not add suite retries, forced clicks, sleeps, or worker serialization.
Proof
pnpm checkpnpm test:e2e— 69 passed