Developer Workflow#
How to run all quality checks locally before pushing. These same checks are enforced in CI (see Quality Assurance).
Pre-commit hooks#
uv sync --locked --extra all
uv run prek run --all-files
Run on a single file:
uv run prek run --files path/to/file.py
Checks include: Ruff lint/format, mypy types, YAML/JSON validation.
Python tests#
uv sync --locked --extra test
uv run pytest
# With coverage
uv run pytest --cov=api --cov=auth_service --cov-report=term-missing
# Run a specific file
uv run pytest api/tests/test_csrf.py
# Run matching tests
uv run pytest -k "test_query"
Frontend tests#
cd js
npm ci
npm test -- --watchAll=false --coverage
E2E tests with Playwright#
Playwright tests are defined in tests/test_playwright.py at the project root.
Integration tests run against a full deployment in the kind cluster. See Development Environment Setup for cluster setup, then run:
pytest tests/test_playwright.py
To add or debug tests, use the Playwright code generator or follow the Playwright documentation.
Building documentation locally#
uv sync --locked --extra doc
uv run sphinx-build -W --keep-going -n docs docs/build/html
Or using the docs Makefile:
make -C docs html
The output is written to docs/build/html/.
Configuration is in docs/conf.py.