This guide describes how to run Mission Control tests locally.
make setup
make checkmake check is the closest thing to “CI parity”:
- backend: lint + typecheck + unit tests (with scoped coverage gate)
- frontend: lint + typecheck + unit tests (Vitest) + production build
From repo root:
make backend-test
make backend-coverageOr from backend/:
cd backend
uv run pytestNotes:
- Some tests may require a running Postgres (see root
compose.yml). make backend-coverageenforces a strict coverage gate on a scoped set of modules.
From repo root:
make frontend-testOr from frontend/:
cd frontend
npm run test
npm run test:watchThe frontend has Cypress configured in frontend/cypress/.
Typical flow:
- Start the stack (or start backend + frontend separately)
- Run Cypress
Example (two terminals):
# terminal 1
cp .env.example .env
docker compose -f compose.yml --env-file .env up -d --build# terminal 2
cd frontend
npm run e2eOr run interactively:
cd frontend
npm run e2e:open