Deflake the Supply run offline-queue tests under host load #186

2 Commits
Author SHA1 Message Date
dev_agentandClaude Opus 5.5 433ff388e0 Drive the offline-queue tests by event-loop turns, not real time
CI / ci (push) Successful in 8m11s
CI / ci (pull_request) Successful in 8m12s
The tests still waited on real time: the 20 ms and 50 ms pauses behind the
"nothing more is sent" checks, Testing Library's waits (a real setInterval
and a real end-of-wait setTimeout), and React Query's notices on a real
setTimeout of 0. Under load, whether the ordered-replay check saw a PATCH
sent too soon depended on when a real timer fired.

The tests now wait with until, which lets the page take turns of the event
loop (setImmediate inside act) until a check passes, and settle, which lets
it take a fixed number of turns before a "nothing more happens" check. No
time passes in either, real or fake. React Query's notices go out a turn
later on setImmediate, and advance moves the fake clock synchronously. The
Testing Library wait wrapper override is gone. The replay assertions are
unchanged.

Task 880e924e-c248-472f-8e92-1baec5b4cc9f.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 21:47:09 -04:00
dev_agentandClaude Opus 5.5 c278a48910 Deflake the offline-queue tests: no real-time clock
CI / ci (push) Successful in 8m21s
CI / ci (pull_request) Successful in 8m17s
The offline-queue tests faked setTimeout with shouldAdvanceTime, so real
elapsed time moved the fake clock: under load it fired retry waits and
deadlines the test had not reached. The clock now moves only when a test
advances it. React Query's notices and Testing Library's end-of-wait
drain, both a setTimeout of 0, run on the real setTimeout instead, and the
two "nothing more happens" pauses wait on real time.

Task 880e924e-c248-472f-8e92-1baec5b4cc9f.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 21:21:41 -04:00