Repository navigation
test(whats-app-panel): settle held group save inside act - #27151
Conversation
Make website/src/test/WhatsAppPanel.test.tsx stop emitting React act() warnings, and drop its row from website/integration/act-warning-baseline.json so the guard in website/integration/setup.ts checks it.
First Principles Review (Opus 5.5) — ⏭️ skippedRevision |
Design Review (Opus 5.5) — ✅ PASSDesign-level review of Design-Verdict: PASS Nothing to check. This is a test-only act() settle plus a shrink of the shrink-only baseline, and it renders nothing. [DESIGN-REVIEWED] a25858e Description read[DESCRIPTION-READ] 0de63b2c744bbe62cb5c946dc528333d438082c7da22e859815d0cf89ab38996 That sha256 names everything this verdict read: the PR description, plus the 1 evidence file(s) the workflow collected from it and handed this review. It covers that evidence because the media strip replaces every attachment URL with the same placeholder, so an edit swapping one attachment for another would leave the description's captured text identical while what this review judged changed. Recompute it with |
UX Review (Opus 5.5) — ✅ PASSUX-level review of UX-Verdict: PASS Nothing to check. Only a test file and the test baseline changed, so no user-visible control was added or changed and no screenshot is needed. [UX-REVIEWED] a25858e Description read[DESCRIPTION-READ] 805996bd30d66888b8e4e7627096fa3b9376ba3e084ab10226587b434a75d4d5 That sha256 names everything this verdict read: the PR description, plus the 3 evidence file(s) the workflow collected from it and handed this review. It covers that evidence because the media strip replaces every attachment URL with the same placeholder, so an edit swapping one attachment for another would leave the description's captured text identical while what this review judged changed. Recompute it with |
Opus 5.5 Review — ✅ no blocking findingsReviewed Verdict parsed from the review's SHA-scoped output markers for commit False positive or not applicable? A repository writer can comment: |
GPT 6.1 Review — ✅ no blocking findingsGPT 6.1 completed its review of This comment is updated in place on each push. Review detailsNo findings. False positive or not applicable? A repository writer can comment: |
KiroCrewCaptain
left a comment
There was a problem hiding this comment.
Tier 1 auto-approve: test (2 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, security checklist all-NO, no reviewer-lane findings, readiness signal fresh for this head SHA, declared category matches the diff. Category: test-only change: settles the held group save inside act in one panel test and drops it from the act-warning baseline.
Problem / Motivation
Goal:
website/src/test/WhatsAppPanel.test.tsxstops emitting React act() warnings, so its row leaveswebsite/integration/act-warning-baseline.jsonand the guard inwebsite/integration/setup.tschecks it like any file outside the list.Before this change, a run of the file emitted 1 act() warning (late state updates in
WhatsAppPanel): a state update landed after the test's last barrier. Because the file is on the baseline, the guard kept those warnings out of the log.Why it matters
website/docs/testing.md(Rules every test keeps) treats an act() warning as a finding: the update lands after the assertions, so whether the test sees it depends on timing. The baseline is shrink-only, and each file that leaves it is held to the rule from then on.Not a goal
What changed (motivation → approach → change)
The tests now wait for the state the late update produces before they finish, so the update lands inside the test's barrier.
website/src/test/WhatsAppPanel.test.tsx:await act(async () => {website/integration/act-warning-baseline.json: removedsrc/test/WhatsAppPanel.test.tsx.Backwards compatibility
Compatible: test-only change.
Removes nothing: a baseline row is a tolerance the guard stops needing, not a capability.
Tests
KIROCREW_ACT_STRICT=1 npx vitest run src/test/WhatsAppPanel.test.tsxfromwebsite/: 1 of 42 tests fail on act() warnings.integration/setup.refactor.determinism.test.tspasses (the baseline stays sorted, unique and existing);npx eslintis clean on the file.Manual verification
N/A: test-only change; the strict runs above are the check.
Screenshots / video
Why no screenshot: nothing renders; this change touches one test file and a test baseline only.
No issue exists; burn-down of the act() warning baseline that #17673 introduced.