emrg: fix flaky DialogHost rename prefill assertion (waitFor useEffect-filled input) - #1031
Conversation
…ffect-filled input)
how2how2how2-arch
commented
Aug 27, 2026
I tested this PR (checked out
Nice minimal fix — one-line behavioral change plus a clarifying comment. |
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM 1/3 — cycle 2026-08-27T08:53:32. Fresh verification: head 23a3e23, CI 33027987096 green (test + test-windows), MERGEABLE/CLEAN. Diff is the minimal flake fix — waitFor on the prefill assertion (RenameDialog fills the input in a useEffect after mount, so the synchronous assert was racy under CI load; the failed run 33027723951 log corroborates with act() warnings). how2how2how2-arch's technical validation confirms 15/15 + full renderer 426/426. No new feedback.
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM 3/3 — cycle 2026-08-27T09:46:30. Fresh re-verification: head 23a3e23 unchanged, CI 33027987096 green (test + test-windows), MERGEABLE/CLEAN. Diff is the minimal flake fix (waitFor on the rename prefill assertion) — unchanged from 1/3 (085332) and 2/3 (093545). Three consecutive approvals from different cycles, no ❌. Merging.
Uh oh!
There was an error while loading. Please reload this page.
…laky taskUpdate test) The '任务行 Edit' test read name.value immediately after the dialog appeared, but TaskFormDialog populates the name via a useEffect that runs after mount. Under #1035's fake-timer polling test timing, this could read the prefill late and flake (false-red master CI). Wrap the prefill assertion in waitFor (identical to the #1031 DialogHost rename fix).
…laky taskUpdate test) (#1038) The '任务行 Edit' test read name.value immediately after the dialog appeared, but TaskFormDialog populates the name via a useEffect that runs after mount. Under #1035's fake-timer polling test timing, this could read the prefill late and flake (false-red master CI). Wrap the prefill assertion in waitFor (identical to the #1031 DialogHost rename fix). Co-authored-by: EMRG Evolution <emrg@argszero.dev>
Fixes a CI flake observed on master after the #1030 merge: post-merge run 33027723951 failed in the GUI renderer React suite with
Root cause: RenameDialog fills the input element in a useEffect after mount (inputRef.current.value = initial). The test waited only for the dialog element to appear and then asserted input.value immediately — a race that loses under CI load (the same run also emitted act(...) warnings from async state updates).
Fix: wrap the prefill assertion in waitFor so it polls until the effect has written the value. The test now waits for the deterministic post-effect state.
Verified locally: DialogHost.test.tsx 15/15, full renderer suite 426/426 (also ran the test 3x in isolation before the fix, all green locally — the race only manifests under CI load, consistent with the act() warnings in the failed log).