Setup : - .env.test étoffé : DRIVE_DISK=fs, MAIL_DRIVER=smtp local, OCR_PROVIDER=mock. Réutilise la DB rubis_dev avec global transactions par test (rollback auto, isolation parfaite). - Schedulers (relance + checkin) détectent NODE_ENV=test et skippent BullMQ.add. Les tasks DB sont quand même créées (utiles pour assertions) mais aucun job orphelin n'arrive en Redis après rollback de tx. - helpers/auth.ts : factory createTestUser() qui crée org + user + 4 plans pré-fournis dans une tx, retourne user/org/accessToken/bearer header. createTwoOrgs() pour les tests cross-org à venir. Tests fonctionnels auth (tests/functional/auth.spec.ts) : - Signup : crée user + org + 4 plans pré-fournis (vérifie les slugs), refuse email mal formé / password court / email déjà pris - Login : émet AuthSession avec credentials valides, rejette mauvais password / email inconnu - Bearer auth : 401 sans token, 401 avec token bidon, 200 avec token valide - Logout : révoque le token courant, requêtes suivantes en 401 - Onboarding : PATCH /organizations/me pose onboardingCompletedAt à la 1re mise du nom, idempotent ensuite Pour lancer : `pnpm -F api test`
13 lines
435 B
Plaintext
13 lines
435 B
Plaintext
NODE_ENV=test
|
|
SESSION_DRIVER=memory
|
|
# Désactive les vraies connexions Redis/MinIO/SMTP pendant les tests.
|
|
# Les schedulers détectent NODE_ENV=test et skip BullMQ.add.
|
|
DRIVE_DISK=fs
|
|
MAIL_DRIVER=smtp
|
|
SMTP_HOST=localhost
|
|
SMTP_PORT=1025
|
|
OCR_PROVIDER=mock
|
|
# Utilise la même DB que dev avec global transactions par test (rollback).
|
|
# Si tu veux une DB séparée : crée `rubis_test` dans Postgres et override
|
|
# PG_DB_NAME=rubis_test ici.
|