Repository navigation
Broaden the CI test suite ahead of the stack upgrades - #460
Open
stephaniehobson wants to merge 16 commits into
Open
stephaniehobson wants to merge 16 commits into
stephaniehobson wants to merge 16 commits into
Conversation
… without blocking
stephaniehobson
force-pushed
the
improve-tests
branch
from
October 26, 2026 21:34
52ddcf3 to
553e2ae
Compare
stephaniehobson
marked this pull request as ready for review
October 26, 2026 21:35
stevejalim
approved these changes
Oct 30, 2026
This branch has not been deployed
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.
One-line summary
Add unit, routing and end-to-end tests that check behavior through the DOM,
fetch, URLs and the rendered charts, so the coming React, router and react-refetch upgrades can be verified without rewriting the tests. Fix the bugs they found.Significant changes and points to review
tests/playwright/fixtures/(292 KB, last 12 weeks). Any page or console error fails the test, and so does any data request with no recording.mainruleset doesn't require it, so a weekly upstream data change shows as a red check but doesn't block merge.test:playwright:recorded,test:playwright:liveandrecord:fixtures.CONTRIBUTING.mdhas step-by-step instructions for re-recording and for running against live data.console.error, so React warnings show up as failures.@testing-library/reactand@testing-library/dom, which belong to the React upgrade.lib/utils.js, container data shaping, metrics-graphics configuration, summary-bar proportions, labels and arrows, date selection, the dashboard and metric fetch states, every route inconfig.json, andLazyBoundary.main. d3-selection 3 passes the event as the handler's first argument. This is a regression from the dependency update, not yet deployed.#metric-overview-fetch-error. Before, the metric stayed blank or kept the previous region's data.Chart.jsxreadsuggestedMaxinstead ofsuggestedYMax. No current metric sets a suggested maximum, so no chart changes today.vite.config.mjs: the dev server's dependency pre-bundling works again. The dependency scan assumed React's automatic JSX runtime and failed on every start. That caused the "first visit 504s (Outdated Optimize Dep)" behavior. CI starts a cold server on every run.dashboards/specs keep their assertions, with two changes:.metric-overviewinstead of the lazily loaded.metric, which made it flaky."NULL"CPU-speed bucket for the week of 2026-10-12. That looks like an ETL problem.docs/execplans/2026-10-21-improve-tests.md.AGENTS.md,CONTRIBUTING.mdanddocs/architecture/frontend.mdare updated for the new test setup.Issue / Bugzilla link
n/a
Testing
Run
npm ciandnpm run build:cssfirst. If something else is already on port 3000, usenpx vite --port 3001 --strictPortand port 3001 in the URLs below.npx vite --force. Check the terminal shows no "Failed to run dependency scan", and thathttp://localhost:3000/dashboard/hardwareloads without a reload.http://localhost:3000/dashboard/hardware, under Summary → GPU Vendor, hover the second segment. Check its name and percentage replace the first label.*/Worldwide/MAU/*, then loadhttp://localhost:3000/dashboard/user-activity. Check the first metric shows "Error fetching metric" instead of an empty space.npm run record:fixtures, thengit diff --stat tests/playwright/fixtures. Check the recorder works for you, and that the diff is empty or shows only upstream changes.tests/playwright/fixtureData.js, please. Every recorded and live spec goes through it.