Testing
This page is the testing companion to Quickstart and Tooling reference. Use it to decide what to run before opening a pull request or changing release-sensitive behavior.
Core validation matrix
| Surface | Command | Run this when |
|---|---|---|
| Frontend | cd frontend && npm ci && npm run lint && npm run typecheck && npm run test:unit && npm run build | Any frontend/ change |
| Backend | cd backend && mvn test --no-transfer-progress | Any backend/ change |
| Python service | cd backend/python-service && uv sync --extra dev && uv run pytest -v --tb=short | Any backend/python-service/ change |
| Docs | cd docs && npm ci && npm run docs:build | Any docs/ change |
| gh-aw workflows | gh aw validate && gh aw compile | Any .github/workflows/*.md or .github/agents/* change |
How to choose the right depth
Fast confidence
Use the commands above for the subsystem you touched. This is the default contributor path.
Cross-cutting confidence
If a change touches multiple layers, run the relevant commands from each affected surface instead of relying on a single top-level check.
Examples:
- BFF auth change: frontend + backend
- Python envelope change: backend + python service
- release flow change: docs + gh-aw + workflow review
Current E2E status
The repository documentation and CI currently treat backend E2E as optional:
.github/workflows/ci.ymlcan run an additional backend E2E stage ifscripts/e2e_backend_comprehensive.shexists- when that script is absent, CI emits a notice and skips that stage
Do not document a guaranteed checked-in E2E flow unless that script becomes a maintained part of the repo.
Documentation-specific testing
For docs work:
- run
npm run docs:build - check navigation and sidebar reachability
- confirm new pages are also represented in Documentation site map