Testing guidance
- Use development commands and the verification procedure as the canonical command references.
- Keep unit tests in
src/tests/unit/, browser tests insrc/tests/browser/, and production fixtures insrc/tests/support/. - Test observable contracts and failures. Avoid tests that merely reproduce implementation or match documentation wording.
- Use unit tests for query normalization, storage resilience, HTTP boundaries, adapters, and component state. Use browser checks for routing, focus, responsive layout, persistence, and accessibility.
- Use production builds for CSP and subdirectory checks. A passing Vite development session does not verify deployment behavior.
- For layout or export changes, verify a clean source copy and both templates installed from all four local package archives, including their publication commands and the full generated-application browser suite. Ignored builds and workspace symlinks must not mask missing package contents.
- Keep reports and screenshots ignored.
- Use
yarn test:coveragefor the V8 unit-coverage report. Include untested maintained source, keep browser acceptance separate, and preserve Cobertura and HTML output for GitLab. Delivery helper unit tests must isolate every filesystem, network, and subprocess boundary with mocks and must never invoke delivery jobs. - Require 100% statements, branches, functions, and lines for every included file. Keep thresholds in
vitest.config.mjsand enforce them throughyarn checkand the hosted/localtest:unitjob. Never add coverage exclusions or ignore directives to bypass missing scenarios. Test outcomes and failures, not just invocation counts. - Start only services needed for checks and stop temporary services afterward. Preserve requested previews and report them at handoff.
Author
Laurent Declercq l.declercq@agon-innovation.ch
License
Unless otherwise stated all source code is licensed under LGPL 2.1 and has the following copyright:
© 2026, Agon Partners Innovation AG, All rights reserved.The design material and the “Agon Ātrium” trademark is the property of their authors. Reuse of them without prior consent of their respective authors is strictly prohibited.
Version
Version: 20260921