Conversation
|
This was referenced Sep 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
The operator dashboard gets a browser-like (jsdom) test environment and a characterization safety net, so the cleanup PRs that follow can prove they change nothing visible. The new tests pin today's behavior of hash routing, operator sign-in bootstrap and logout, the query client, error copy, dates, the Leaflet map and every section page's loading, empty, error, populated and deep-link states. No application code changes.
Visible in: none.
Before you start
pnpm testfrom the repo root on Node 22.Verify
pnpm installthenpnpm test. Expect: 56 test files and 603 tests pass (main has 38 files and 203 tests).TZ=Pacific/Kiritimati LC_ALL=de_DE.UTF-8 pnpm test. Expect: the same 603 pass, because the test runtime pins its locale and time zone.Regression
The dashboard itself: [Admin]
admin.civfix.devand click through the home tiles. Expect: no change at all. Only test files, the test config and dev dependencies changed.Not covered
Findings addressed
remove()on unmount;--passWithNoTestshid a broken include glob.users-page.test.tsactually tested the profile activity navigation module; it is renamed to match.Every test that pins a known defect ends its name in "(current behavior)", so the fix PRs in this train flip exactly those tests:
errorMessagequirks.Tests changed
role="dialog"andaria-modal="true", with noaria-hiddenaria-modal="true", have noaria-hidden, and match the shell's Escape-owner selector while open.<button type="button">with no role, tabIndex or onKeyDown, and no div inside a buttontype="button"button (26 counted), with no focusable element or div inside it. No element hasrole="button"or a tabindex. Tab visits each control exactly once in order. Enter and Space each activate every control exactly once.Decisions for the reviewer
>=22.vitest.config.tspinsTZ=UTCanden_US.UTF-8before workers fork, and runs tests in theforkspool.jestfake-timer shim, because Testing Library only detects Jest's timers. The two debounce tests are exact to the millisecond.Verification
pnpm lint,pnpm typecheckandpnpm buildpass.pnpm testpasses: 56 files, 603 tests. It also passed 3 more times, once shuffled, and once underLC_ALL=de_DE.UTF-8withTZ=Pacific/Kiritimati.@testing-library/react,@testing-library/dom,@testing-library/user-event,@testing-library/jest-domandjsdom.origin/maingained the unified mail inbox mid-PR, so the mail page's inbox characterization was re-pinned to the new feed (a merge commit, plus one test commit).🤖 Generated with Claude Code