Skip to content

bench-app comparator test sits over its 5s timeout since #415, and fails intermittently #434

Description

@blove

apps/bench/src/__tests__/bench-app.test.tsx"dispatches comparator interaction scripts through measureBenchInteractionRun (B2 #5b)" now runs close to, and often past, vitest's default 5000ms timeout.

Evidence

where duration outcome
CI, PR #433 first run 13807ms failedTest timed out in 5000ms
CI, same commit re-run passed
local, apps/bench at f22cf928 6399ms failed

The local run is on a tree whose apps/bench is byte-identical to f22cf928 (git diff f22cf928 --name-only -- apps/bench is empty), so this reproduces on main, not on the PR that surfaced it — #433 adds a single JSON file under status/milestones/ and touches nothing in apps/bench.

Main's own CI run at f22cf928 passed, which is why this did not surface there. The test is marginal, not broken: whether it passes depends on runner speed.

Why now

#415 made the comparator adapters read column.wrap. This test renders ?adapter=ag-grid&scenario=S2&script=sort, so it now exercises ag-grid's wrapText + autoHeight path — per-cell measurement on mount — in jsdom, at the default dev scale, which is 750 rows × 40 columns for S2.

That is the intended behaviour change; the test simply was not re-timed against it. Its sibling "renders the requested mui competitor surface" moved to ~1-3.7s for the same reason and is heading the same way.

Suggested fix

A timeout bump is the safe change, but probably the wrong one. What the test asserts — that a comparator interaction script dispatches through measureBenchInteractionRun — is scale-independent: measureBenchInteractionRun is mocked with mockResolvedValueOnce, and the assertion is about the call, not about volume. Running it at scale=smoke (120 rows) would make it fast and stable while asserting exactly the same thing.

Worth confirming that reading before changing it, since the test belongs to the B2 comparator series and may be load-bearing in a way the name does not show.

Not fixed here: #433 was unblocked by a re-run, and picking the fix is a judgement call for whoever owns the B2 tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions