This repo has backend unit and integration coverage, frontend component tests, and CI build verification for all three frontend apps.
Run backend linting and tests:
cd backend
uv run ruff check .
uv run black --check .
uv run pytestRun shared frontend quality gates from the repo root:
npm run lint:frontend
npm run test:frontend
npm run format:checkVerify each frontend app builds:
cd frontend\jobseeker; npm run build
cd ..\employer; npm run build
cd ..\admin; npm run buildBackend coverage includes:
- auth bootstrap and role enforcement
- cookie-authenticated middleware behavior and CSRF enforcement
- schema and seed behavior
- employer approval and listing workflows
- jobseeker profile and application workflows
- transit and geocoding service behavior
- matching engine behavior
- notifications and audit logging
- auth-enabled middleware and infrastructure helpers
Frontend coverage includes:
- shared auth console behavior
- shared cookie-session auth client behavior, including reload hydration and refresh without browser token storage
- route-guard handling
- jobseeker auth and bootstrap transitions
- job board eligibility rendering
- employer listing submission
- admin employer review flows
GitHub Actions in .github/workflows/ci.yml currently runs:
- backend dependency install, Ruff, Black, tests, and import verification
- root frontend dependency install, lint, format check, and Vitest
- separate production builds for the jobseeker, employer, and admin apps
Use this checklist before releases or larger merges:
- Employer signs up through
authSDK, bootstraps into TWA, waits for approval, gets approved, submits a listing, and staff reviews that listing. - Jobseeker signs up through
authSDK, bootstraps into TWA, completes a profile, sees eligible and ineligible jobs, and submits an application. - Staff signs in, reviews applications, marks a hire, and optionally closes the related listing.
- Jobseeker, employer, and admin browser sessions survive a full page reload without relying on browser token storage.
- Logout clears the cookie-backed browser session and returns each app to anonymous state.
- Unsafe cookie-authenticated requests fail without a valid CSRF header and succeed when the shared client bootstraps CSRF correctly.
- Employer applicant visibility toggles off and on correctly in the employer portal.
- Notification settings save correctly in the admin app.
- Audit log entries appear for employer review, listing review, application updates, and notification-config changes.
Scheduled GTFS refresh validation is not covered as a current automated QA workflow in this repo.