Browser tests and measurement helpers
Playwright tests exercise the production build against the configured database. Use a dedicated development/test database because journeys edit shared fixtures.
System explanation · Choosing checks
Functional tests start a fresh production build on port 3001 by default. Chromium runs the functional suite; Firefox runs hydration.spec.ts. The performance config runs its own projects. Both use one worker. Database integration tests live under src/lib/db and are enabled separately with QC_DB_INTEGRATION=1.
Source files
| File | Responsibility / entry points |
|---|---|
e2e/demo-fixture.ts
|
Shared browser-test helpers for stable synthetic review identities and access. resetDemoFixture, appendDemoFixture |
e2e/money-input.ts
|
Types dollar amounts into cents-first money fields, which fill() cannot
replace. enterMoney |
e2e/perf/measure.ts
|
Browser CDP metering, network profiles and component journey measurements. NetworkProfile, profiles, meter |
e2e/perf/probe.ts
|
Browser readiness and network observation used by performance journeys. probe |
e2e/perf/reporter.ts
|
Performance artifact/report generation including failed samples. performanceSample, PerformanceReporter |
Tests
| File | Responsibility / entry points |
|---|---|
e2e/clerk-appearance.spec.ts
|
Checks clerk appearance. Example: “Clerk appearance stays in view when layouts change”. |
e2e/clerk-navigation.spec.ts
|
Checks clerk navigation. Example: “Clerk avatar reserves its painted slot while the destination user button mounts”. |
e2e/computation-sticky-headers.spec.ts
|
Checks computation sticky headers. |
e2e/computation-validation.spec.ts
|
Checks computation validation. Example: “computation household size accepts 1 through 20 and rejects 21 without losing the saved value”. |
e2e/expanded-search.spec.ts
|
Checks expanded search. Example: “expanded search retains common fields and supports exclusion, ranges, people, nested data and sorting”. |
e2e/find-work.spec.ts
|
Checks find work. Example: “stacked search combines independent suffix, surname and month filters”. |
e2e/font-preloads.spec.ts
|
Checks font preloads. Example: “dashboard HTML and HTTP headers preload at most two fonts”. |
e2e/font-size.spec.ts
|
Checks font size. Example: “font size slider persists a pixel value across reload”. |
e2e/hydration.spec.ts
|
Checks hydration. Example: “inbox and review reload without hydration errors”. |
e2e/loading-preview.spec.ts
|
Checks loading preview. |
e2e/month-exports.spec.ts
|
Checks month exports. Example: “sample-month exports download only eligible scoped rows and enforce export roles”. |
e2e/navigation-feedback.spec.ts
|
Checks navigation feedback. Example: “navigation shows a skeleton immediately while saving, then keeps it through slow Home data”. |
e2e/perf-budgets.spec.ts
|
Checks perf budgets. Example: “repeated navigation stays visible after each loading handoff”. |
e2e/perf-instrumentation.spec.ts
|
Checks perf instrumentation. Example: “the probe waits for data rendering, counts UTF-8 bytes and catches duplicate GETs”. |
e2e/post-demo.spec.ts
|
Checks post demo. Example: “undo survives Save, tab changes, Clear and Reset”. |
e2e/refresh-pagination.spec.ts
|
Checks refresh pagination. Example: “catalog requests only the selected page and slim row fields”. |
e2e/reports-dashboard.spec.ts
|
Checks reports dashboard. Example: “report charts, filters and CSV runs share the same scoped totals”. |
e2e/server-data.spec.ts
|
Checks server data. Example: “initial page data arrives with the route without a second API GET”. |
e2e/session-bootstrap.spec.ts
|
Checks session bootstrap. Example: “protected pages load from the server session without waiting for Clerk”. |
e2e/sidebar-clerk.spec.ts
|
Checks sidebar clerk. Example: “authenticated sidebar keeps view picker, notifications and Clerk profile together”. |
e2e/sidebar-interactions.spec.ts
|
Checks sidebar interactions. Example: “unpin hides the sidebar immediately while the pointer stays over it”. |
e2e/snap-negative.spec.ts
|
Checks snap negative. Example: “workspace header stays visible at 1280×800 without horizontal overflow”. |
e2e/ui-layouts.spec.ts
|
Checks ui layouts. Example: “unified navigation, sidebar preferences and accessibility survive reload”. |
e2e/upgrade-acceptance.spec.ts
|
Checks upgrade acceptance. Example: “supervisor can schedule a subordinate review and examiner can read the saved appointment”. |