Aller au contenu

Rapport de Tests - Routes Backend

Date : 2026-05-31
Statut : Tests statiques effectués (tests fonctionnels bloqués - voir ci-dessous)

Routes Découvertes

Route Auth (publiques)

Méthode Endpoint Handler Description
POST /api/v1/auth/login login Connexion utilisateur
POST /api/v1/auth/register register Inscription nouvel utilisateur

Route Comptes (protégées)

Méthode Endpoint Handler Description
GET /api/v1/comptes lister Lister les comptes
POST /api/v1/comptes creer Créer un compte
GET /api/v1/comptes/:id obtenir Obtenir un compte
PUT /api/v1/comptes/:id modifier Modifier un compte

Route Recettes (protégées)

Méthode Endpoint Handler Description
GET /api/v1/recettes lister Lister les recettes
POST /api/v1/recettes creer Créer une recette
GET /api/v1/recettes/:id obtenir Obtenir une recette
PUT /api/v1/recettes/:id modifier Modifier une recette
DELETE /api/v1/recettes/:id supprimer Supprimer une recette

Route Depenses (protégées)

Méthode Endpoint Handler Description
GET /api/v1/depenses lister Lister les dépenses
POST /api/v1/depenses creer Créer une dépense

Route Transferts (protégées)

Méthode Endpoint Handler Description
GET /api/v1/transferts lister Lister les transferts
POST /api/v1/transferts creer Créer un transfert

Corrections Apportées pendant le Refactoring

1. Entités - Remplacement Error par ErreurMetier

  • Recette.ts : throw new Errorthrow new ErreurRecette
  • Depense.ts : Validation d'invariants ajoutée avec ErreurDepense

2. Controllers - Pattern IHttpContext

  • Controllers refactorisés pour accepter IHttpContext directement (créé par GestionnaireModulaire)
  • Pattern arrow functions préservant this

3. Types Record → Record

  • AuthModuleController.ts : Interface Record corrigée
  • CompteModuleController.ts : Interface Record corrigée

4. Interfaces UseCase - Codes d'erreur complets

  • IModifierRecetteUseCase.ts : Ajout MONTANT_INVALIDE dans les codes
  • IObtenirRecetteUseCase.ts : Ajout DONNEES_INVALIDES dans les codes

Blocage Tests Fonctionnels

Problème : Base de données PostgreSQL non disponible

PrismaClientInitializationError: Environment variable not found: DATABASE_URL

Solution requise

  1. Démarrer PostgreSQL : docker run -p 5432:5432 postgres
  2. Exécuter migration : npx prisma migrate dev
  3. Lancer serveur : npm run dev

Checklist de Tests à Effectuer (après résolution DB)

Auth

  • [ ] POST /api/v1/auth/login avec credentials valides
  • [ ] POST /api/v1/auth/login avec mauvais password
  • [ ] POST /api/v1/auth/register email déjà utilisé
  • [ ] POST /api/v1/auth/register email invalide

Comptes

  • [ ] GET /api/v1/comptes sans authentification (401)
  • [ ] POST /api/v1/comptes avec solde négatif (400)
  • [ ] POST /api/v1/comptes nom vide (400)
  • [ ] GET /api/v1/comptes/:id inexistant (404)

Recettes

  • [ ] POST /api/v1/recettes avec montant négatif (400)
  • [ ] POST /api/v1/recettes description vide (400)
  • [ ] GET /api/v1/recettes avec filtres date/type
  • [ ] GET /api/v1/recettes/:id autre utilisateur (403)

Dépenses

  • [ ] POST /api/v1/depenses rubrique inexistante (400)
  • [ ] POST /api/v1/depenses montant négatif (400)

Transferts

  • [ ] POST /api/v1/transferts compte origine = destination (400)
  • [ ] POST /api/v1/transferts solde insuffisant (400)