# Plan concret — backend restant (Tests, CI, routes)

## Etat actuel valide
- Auth JWT + cookie HttpOnly en place
- CORS/middleware en place
- CRUD principaux en place: employes, contrats, absences, diplomes, visites-medicales
- Routes liees en place: avenants, disciplinaires/sanctions, lookups principaux

## 1) Priorite immediate: Tests d'integration
Objectif: securiser ce qui existe deja avant d'ouvrir de nouvelles routes.

## Scope minimum (must-have)
- `POST /api/auth/login`
- `GET /api/auth/me`
- `GET /api/employes/:cos`
- `GET /api/contrats`
- `POST /api/avenants` (cas valide + contrat introuvable)

## Cas a couvrir
- 200/201 nominal
- 400 validation Zod
- 401 non authentifie
- 404 ressource absente
- 500 (mock erreur service)

## Outils proposes
- `vitest`
- `supertest`
- DB de test (MySQL docker) + seed minimal

## Sortie attendue
- Dossier `tests/integration/**`
- Script `npm run test:integration`
- Coverage minimale cible: 70% sur `app/api/**` et `lib/requireAuth.ts`

## 2) Priorite immediate: CI pipeline
Objectif: bloquer les regressions automatiquement sur chaque MR/push.

## Jobs CI (ordre)
1. Install
2. Lint
3. Typecheck
4. Build
5. Integration tests

## Conditions de merge
- Build vert obligatoire
- Tests d'integration verts
- Aucun `tsc` error

## Fichier cible
- GitLab: `.gitlab-ci.yml`

## Variables CI a definir
- `DATABASE_URL_TEST`
- `SECRET_KEY`
- `AUTH_ADMIN_USERNAME`
- `AUTH_ADMIN_PASSWORD`
- `FRONTEND_ORIGIN`

## 3) Routes backend restantes (priorisees)
Le schema Prisma contient ~56 modeles. Le backend expose surtout les routes RH coeur metier.

## Phase A (forte valeur metier immediate)
- `GET /api/plans`
- `GET /api/mutuelles`
- `GET /api/motifs-sortie`
- `GET /api/motifs-derogation-mutuelle`
- `GET /api/objet-visite-medicale`
- `GET /api/jours-feries`

## Phase B (liens RH utiles pour ecrans detail)
- `GET /api/secteurs-employes?cos=...`
- `POST /api/secteurs-employes`
- `DELETE /api/secteurs-employes/:id`
- `GET /api/arh`
- `GET /api/cpam`

## Phase C (admin/back-office)
- `GET/POST/PUT/DELETE /api/administrateurs`
- `GET /api/signataires`
- `GET /api/ref-signataires`
- `GET /api/ref-adresses-mail-pour-automatiques`

## 4) Securite/session a prevoir juste apres
- `POST /api/auth/logout` (expire cookie)
- rotation/refresh token (si sessions longues)
- limitation de debit login (rate limit)
- journalisation des connexions

## 5) Plan d'execution recommande (2 sprints)
## Sprint 1
- Tests integration critiques
- Pipeline CI GitLab
- Logout

## Sprint 2
- Phase A routes lookups manquantes
- Phase B routes secteurs-employes
- Tests integration additionnels

## Definition of done
- Endpoint documente + teste
- Erreurs 400/401/404/500 coherentes
- Route protegee si necessaire
- Ajout dans `CRUD_ROUTES.md`
