Skip to content

Public site suite

packages/public-site, Vitest with jsdom. 28 files ยท 134 tests ยท all passing ยท ~12s.

The public site is the auth-free search and rule-catalogue package. Nothing under packages/public-site/src/ changed between v2026.08.20 and v2026.08.23, so every figure here reproduced the earlier measurement exactly.


Inventory

Area Files Tests Covers
src/pages 14 71 Includes a full herkomst/ provenance-explorer sub-area (HerkomstExplorer, HerkomstTrace, HerkomstChip, HerkomstBackground, herkomstConcepts, herkomstData, herkomstTrail โ€” 7 files, 39 tests) plus the generic SectionIndex / Regelcatalogus / Results / Detail / Woordenboek / static pages
src/lib 6 26 slug (kept identical to the backend's slugifier by design), useQueryState (URL-backed filters), search (highlight()), api (the typed /v1/public/* client), sectionHits (mapToHits()), prerenderedData (the seeded-render reader)
scripts/ 2 15 prerender.test.ts (11 โ€” escapeHtml, buildSitemap, injectIntoShell), check-bundle.test.ts (4 โ€” the build-time gate that fails if any auth or telemetry string ships in the bundle)
src/components 3 13 Presentational chrome, Footer, TechDetails
src/App.test.tsx 1 5 Routing shell โ€” every route registered, <html lang> synced to the language switch
src/i18n 1 3 NL/EN dictionary key parity
src/staticwebapp-csp.test.ts 1 1 Guards the shipped CSP header โ€” a regression here silently breaks the org-logo host

Coverage: src/components 96.77%, src/lib 84.9%, src/pages 82% โ€” see Coverage.

This package has the widest statement-to-branch gap of the three, at 16.4 points (86.82% โ†’ 70.39%), and it has not moved because nothing here changed.


Playwright suite

packages/public-site/e2e/publiek.spec.ts (npm run test:e2e --workspace=@ronl/public-site) against real /v1/public/* data with no mocks โ€” search โ†’ filter โ†’ detail โ†’ back with URL preservation, a deep link with pre-applied filters, keyboard-only navigation, and three axe-core accessibility scans (home, results, a detail page) asserting no critical or serious violations.

These figures were not re-measured for v2026.08.23

Measured 19 August 2026 against v2026.08.19: 6 tests, 6 passed, 0 failed, 0 flaky, 0 skipped, 8.9s.

Nothing under packages/public-site/src/ changed between that release and this one, so the suite is expected to be unaffected โ€” but it was not re-run to confirm, and this is the only figure on these pages carrying an older date than the rest.

Unlike the frontend suite, Playwright starts its own dev server for this package (webServer in playwright.config.ts) โ€” only the backend needs to already be running. Setting E2E_BASE_URL points the suite at an already-deployed site instead, which is how it is used for post-deploy verification against ACC.


CI

Public-site is the package that had a real CI test gate before the others did. Both azure-publicsite-acc.yml and -prod.yml run npm run lint, npm run type-check, then npm test before building, and the build itself gates on a prerender step and a bundle-cleanliness check. A failing test blocks the deploy.