# Testing Strategy

The repo keeps test orchestration separate from application code:

- `testing/quality_contract.json` defines the managed production scope that the quality gate owns.
- `testing/ci/` holds shared CI helpers for file-size ratchets, docstring checks, coverage checks, and Pushgateway publishing.
- `testing/tests/` exercises the CI helpers themselves so the gate logic stays stable.
- `backend/tests/` holds backend unit and route tests, run with `pytest`.
- `testing/frontend/unit/` holds Vitest coverage tests for frontend logic and Vue components.
- `testing/frontend/component/` holds Playwright component tests for browser-mounted Vue components.
- `testing/frontend/e2e/` holds Playwright end-to-end smoke tests against the live frontend dev server.

The goal is to keep production code focused on app behavior while CI and local workflow logic lives in one place that both Jenkins and developers can reuse. The top-level `testing` package is the repo-owned home for quality policy, browser automation, and metrics publishing.
