Work in progress · Version 1.1, last updated 6 November 2026
Quality attributes

Test coverage

Every application has automated tests with an enforced coverage floor, and browser suites cover the main journeys.

~14,000
automated unit and integration tests across 6 code bases
96%
frontend line coverage (floor 90%)
80%
Drupal line coverage floor
94–95%
finder service coverage (floors 92–95%)
~700
browser end-to-end cases

Coverage by application

Application Test types Size Coverage (measured) Enforced floor Where it runs
Frontend (padi.com) Unit, component (Storybook with accessibility checks), browser end-to-end About 7,600 unit cases, 146 story files, 43 browser specs (about 425 cases) Lines 96.4%, branches 91.4%, functions 93.2% 90% on lines, statements, functions and branches Pull-request gate; verify stage in every environment; 4-test smoke after every deploy
Edge Workers (edge.padi.com) Unit and routing tests, live URL replay About 800 tests Lines 99.6%, branches 95.8% — Pull-request gate and verify stage; replay of real URLs after each deploy
search.padi.com Unit, integration against real OpenSearch and PostGIS, infrastructure tests 178 test files, about 1,300 test functions, 190 infrastructure cases API 93.6%; data 58.4% unit, 94.2% with integration API 92%; data 58% unit, 94% with integration Pull-request gate, verify and coverage stages
locator.padi.com Unit, API contract 57 test files, about 460 test functions 95.3% 95% Pull-request gate and verify stage
CI library (ci.padi.com) Unit, shell checks, image builds About 120 cases — — Release gate
End-to-end suite Sign-in, authoring and content moderation by role, media upload, WCAG 2.1 AA checks, Lighthouse audits, visual snapshots, migration validation About 95 cases: accessibility on 9 page templates, Lighthouse on 40 URLs, visual snapshots on 2 pages n/a n/a On demand against any environment, with HTML and Allure reports
Contract suite Authoring, editorial workflow, API contract, reader journeys, finder, three browsers About 250 cases n/a n/a On demand

Coverage figures were measured in early November 2026; each pipeline enforces its floor on every change. The frontend and Drupal pipelines also send their coverage to Datadog, where a dashboard shows it against the floor.

Journeys and their automated coverage

Journey Automated coverage
Home and site shell Post-deploy smoke; end-to-end smoke
Localised routing and legacy redirects Real-URL replay after edge deploys; browser routing suite (about 215 cases)
Content pages and paragraph rendering Unit and component tests; the contract suite checks content order
Blog listing, filters, load more Unit tests; contract suite in three browsers
Finder in a browser Service integration tests; contract suite with the locator contract
Website search Service integration tests
Editorial workflow and publish Kernel tests; production smoke; end-to-end authoring and content moderation tests for each editorial role; contract suite
Media End-to-end media upload tests
Translation round trip Kernel tests (87 test classes in the translation module)
Preview Unit tests; contract suite
Sign-in Unit and link tests; end-to-end sign-in test
MyPADI Unit tests (97.8% lines); load-test kit
Accessibility Component checks in Storybook; WCAG 2.1 AA checks on 9 page templates
Visual Visual snapshots of key pages
Performance Lighthouse audits of 40 URLs
Load Load-test kits for the website and finder