Repository navigation
test(prompts-tab): wait for create dialog close and row detail - #27170
Conversation
Make website/src/test/PromptsTab.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 |
UX Review (Opus 5.5) — ✅ PASSUX-level review of UX-Verdict: PASS Nothing to check. Only a test file and a test baseline change, and no user-visible control changes, so the missing screenshots leave no gap. [UX-REVIEWED] 87b75f5 Description read[DESCRIPTION-READ] 4e3d51f1391bb8b7e058e0e2cb345683972f9d6d1285fc835948fe10dfdf417c 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 |
Design Review (Opus 5.5) — ✅ PASSDesign-level review of Design-Verdict: PASS Nothing blocks: this is a test-only change that waits for the late state updates rather than silencing them, and removing the baseline row only puts the file under the existing guard. [DESIGN-REVIEWED] 87b75f5 Description read[DESCRIPTION-READ] b5251a5824d828a117865d126efb94308cd5b487e647c86ff85da9e549797bb8 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 |
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: waits for the create dialog to close and the row detail to load, and drops the file from the act-warning baseline.
Problem / Motivation
Goal:
website/src/test/PromptsTab.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 10 act() warnings (late state updates in
PromptsTab): 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/PromptsTab.test.tsx:await waitFor(() => expect(screen.queryByPlaceholderText('my-prompt-name')).not.toBeInTheDocument())website/src/test/PromptsTab.test.tsx:await waitFor(() => expect(mockApi.promptDetail).toHaveBeenCalledTimes(2))website/src/test/PromptsTab.test.tsx:await waitFor(() => expect(screen.getByRole('option', { name: /other/ })).toHaveAttribute('aria-selected', 'true'))website/src/test/PromptsTab.test.tsx:await waitFor(() => expect(screen.queryByPlaceholderText('my-prompt-name')).not.toBeInTheDocument())website/integration/act-warning-baseline.json: removedsrc/test/PromptsTab.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/PromptsTab.test.tsxfromwebsite/: 3 of 73 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.