fix(app): deflake per-series number format e2e test - #3028
Conversation
The test had a 15s total timeout — the only one in the file below 30s — while containing two 10s expect.poll calls, three query round-trips, and two tile saves. On loaded CI shards the final poll after the second save ran out of wall clock on all retries. Bump the test timeout to the file convention (60s, the project default) and give the tile re-render poll 15s, since saveTile() returns before the tile refetches.
|
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🔵 Tier 2 — Low RiskSmall, isolated change with no API route or data model modifications. Why this tier:
Review process: AI review + quick human skim (target: 5–15 min). Reviewer validates AI assessment and checks for domain-specific concerns. Stats
|
Greptile SummaryThis PR reduces flakiness in the per-series number-format dashboard E2E test by aligning its overall timeout with the project default and allowing more time for the asynchronous tile re-render poll.
Confidence Score: 5/5The PR appears safe to merge because it only increases bounded E2E wait budgets to values consistent with existing project conventions. The changed timeouts accommodate the documented asynchronous dashboard tile re-render without altering application behavior or exceeding the surrounding CI budget.
|
| Filename | Overview |
|---|---|
| packages/app/tests/e2e/features/dashboard.spec.ts | The timeout increases are consistent with project defaults and neighboring dashboard E2E patterns, with no correctness issue identified. |
Reviews (1): Last reviewed commit: "fix(app): deflake per-series number form..." | Re-trigger Greptile
Deep Review✅ No critical issues found. This is a two-line, test-only change to a Playwright e2e spec ( The reviewers confirmed the change is safe:
No P0/P1, P2, or P3 findings. Reviewers (3): testing, correctness, julik-frontend-races. Testing gaps: none identified — the change tunes timing budgets on an existing test and adds no new behavior requiring coverage. |
E2E Test Results✅ All tests passed • 323 passed • 1 skipped • 1426s
Tests ran across 4 shards in parallel. |
Why
The dashboard e2e test
per-series format overrides chart-wide format and falls back when reset to inheritfails intermittently on CI shards (example: failed run, all 3 attempts timed out at the final assertion).Root cause is a razor-thin time budget:
test.setTimeout(15000)— the only sub-30s timeout in the file; every sibling full-stack dashboard test uses 30–90s and the project default is 60s. The test performs ~10 UI steps, 3 query round-trips, 2 tile saves, and twoexpect.pollcalls that can consume 10s each.saveTile()can also genuinely expire on a loaded shard, sincesaveTile()returns before the tile refetches and re-renders.What
Test-only change, no changeset. Verified locally with
make dev-e2e FILE=dashboard GREP="per-series format"— passes in 12.4s, confirming how tight the 15s budget was.