batchCooking/apps/api/src
Nicolas 61ac2993db fix(api): isole la base de test de la base de dev
Incident : lancer `pnpm test` (apps/api) truncait la vraie base de dev
locale — `test-support/reset-db.ts`'s `resetDatabase()` fait un `TRUNCATE
... CASCADE` sur quasiment tout le schéma (dont `house`/`house_source`)
avant *chaque* test, et `.env`/tests partageaient le même
`DATABASE_URL` (un seul fichier `.env`, `NODE_ENV=test` ne changeait
rien). Deux lancements du test suite cette session ont ainsi effacé le
foyer, le compte et les activations de sources d'un utilisateur en
train de tester l'app en local — perte réelle, aucune récupération
possible (TRUNCATE, pas de sauvegarde).

- `config/env.ts` charge désormais `.env.test` (pas `.env`) quand
  `NODE_ENV=test` — `.env.test` (local, non commité, comme `.env`)
  pointe vers une base Postgres séparée (`batchcooking_test`, même
  serveur/identifiants que la base de dev, juste une base différente).
  `.env.test.example` documente comment la créer.
- `resetDatabase()` refuse maintenant de tourner si `NODE_ENV !== "test"`
  ou si `DATABASE_URL` ne contient pas "test" — garde-fou supplémentaire
  si `.env.test` est un jour absent/mal configuré, pour ne plus jamais
  reproduire cet incident même en cas d'erreur de configuration.
- `.gitignore` autorise `.env.test.example` (déjà ignoré via `.env.*`,
  comme `.env.example` l'est déjà pour `.env`).

Vérifié : snapshot de la base de dev (houses/house_sources/users) avant/
après un lancement complet de `pnpm test` — identique, base de dev
intacte. 282 tests toujours au vert, contre la nouvelle base de test.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 19:51:21 +02:00
..
config fix(api): isole la base de test de la base de dev 2026-08-20 19:51:21 +02:00
db feat(recipes): parcourir et prévisualiser les sources externes (étape 1/4) 2026-08-20 15:51:16 +02:00
lib feat(recipes): parcourir et prévisualiser les sources externes (étape 1/4) 2026-08-20 15:51:16 +02:00
middlewares API: endpoints foyer/profil (nom, régime, allergènes) (step 2/6) 2026-08-16 23:18:46 +02:00
modules feat(recipes): écran de revue et finalisation de l'import (étape 3/4) 2026-08-20 16:56:06 +02:00
scripts fix(recipes): synchronise les sources en base au démarrage de l'image de prod 2026-08-20 13:48:29 +02:00
sources feat(recipes): parcourir et prévisualiser les sources externes (étape 1/4) 2026-08-20 15:51:16 +02:00
app.ts feat(recipes): parcourir et prévisualiser les sources externes (étape 1/4) 2026-08-20 15:51:16 +02:00
server.ts feat(recipes): première source concrète (TheMealDB) + icône de source 2026-08-20 11:16:13 +02:00