docs: fill in development + testing guides
This commit is contained in:
@@ -1,3 +1,58 @@
|
||||
# Development workflow
|
||||
|
||||
Placeholder: see root `README.md` for current setup steps.
|
||||
This page describes a contributor-friendly local dev loop.
|
||||
|
||||
## Prereqs
|
||||
|
||||
- Python 3.12+
|
||||
- Node 22+
|
||||
- Docker + Docker Compose v2 (`docker compose`)
|
||||
- `uv` (installed automatically by `make backend-sync` in CI; for local install see https://docs.astral.sh/uv/)
|
||||
|
||||
## Fast local loop (DB in Docker, apps on host)
|
||||
|
||||
1) Start Postgres (via compose)
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Configure .env as needed (see root README for auth-mode notes)
|
||||
|
||||
docker compose -f compose.yml --env-file .env up -d db
|
||||
```
|
||||
|
||||
2) Install deps
|
||||
|
||||
```bash
|
||||
make setup
|
||||
```
|
||||
|
||||
3) Apply DB migrations
|
||||
|
||||
```bash
|
||||
make backend-migrate
|
||||
```
|
||||
|
||||
4) Run backend (dev)
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
uv run uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||||
```
|
||||
|
||||
5) Run frontend (dev)
|
||||
|
||||
In another terminal:
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm run dev -- --hostname 0.0.0.0 --port 3000
|
||||
```
|
||||
|
||||
Open:
|
||||
- Frontend: http://localhost:3000
|
||||
- Backend health: http://localhost:8000/healthz
|
||||
|
||||
## Notes
|
||||
|
||||
- If you want the fully-containerized stack instead, see the root README’s compose instructions.
|
||||
- If you add new env vars, prefer documenting them in `.env.example` and linking from docs rather than pasting secrets.
|
||||
|
||||
@@ -1,3 +1,57 @@
|
||||
# Testing guide
|
||||
|
||||
Placeholder: see root `README.md` and `CONTRIBUTING.md` for current commands.
|
||||
This repo’s CI parity entrypoint is:
|
||||
|
||||
```bash
|
||||
make check
|
||||
```
|
||||
|
||||
That target runs lint + typecheck + unit tests + coverage gate + frontend build.
|
||||
|
||||
## Quick commands
|
||||
|
||||
From repo root:
|
||||
|
||||
```bash
|
||||
make setup
|
||||
|
||||
# Format + lint + typecheck + tests + build (CI parity)
|
||||
make check
|
||||
```
|
||||
|
||||
Docs-only quality gates:
|
||||
|
||||
```bash
|
||||
make docs-check
|
||||
```
|
||||
|
||||
## Backend
|
||||
|
||||
```bash
|
||||
make backend-lint
|
||||
make backend-typecheck
|
||||
make backend-test
|
||||
make backend-coverage
|
||||
```
|
||||
|
||||
## Frontend
|
||||
|
||||
```bash
|
||||
make frontend-lint
|
||||
make frontend-typecheck
|
||||
make frontend-test
|
||||
make frontend-build
|
||||
```
|
||||
|
||||
## E2E (Cypress)
|
||||
|
||||
CI runs Cypress E2E in `.github/workflows/ci.yml`.
|
||||
|
||||
Locally, the frontend package.json provides the E2E script:
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm run e2e
|
||||
```
|
||||
|
||||
If your E2E tests require auth, ensure you have the necessary env configured (see root README for auth mode). Do **not** paste tokens into docs.
|
||||
|
||||
Reference in New Issue
Block a user