Aller au contenu

PD-32 — Revue des Tests

Résumé

Critère Statut
Couverture TC-* 13/17
Qualité assertions ⚠️
Isolation ⚠️
Edge cases ⚠️

Verdict : ⚠️ RÉSERVES

Matrice de couverture

TC-ID Implémenté Fichier Commentaire
TC-NOM-01 test/user-profile.e2e-spec.ts GET profil + champs attendus + minimisation partielle.
TC-NOM-02 test/user-profile.e2e-spec.ts PUT name couvert.
TC-NOM-03 test/user-profile.e2e-spec.ts PUT avatarUrl couvert.
TC-NOM-04 test/user-profile.e2e-spec.ts PUT preferences couvert.
TC-ERR-01 test/user-profile.e2e-spec.ts GET/PUT sans auth couverts.
TC-ERR-02 ⚠️ test/user-profile.e2e-spec.ts ID réutilisé pour erreurs de validation, ambigu avec matrice contractuelle.
TC-ERR-03 test/user-profile.e2e-spec.ts Isolation lecture U1/U2 couverte.
TC-ERR-04 test/user-profile.e2e-spec.ts Isolation écriture U1/U2 couverte.
TC-ERR-05 test/user-profile.e2e-spec.ts Clé inconnue/locale invalide couverte via 400 validation.
TC-ERR-06 test/user-profile.e2e-spec.ts Rejet email/plan couvert.
TC-ERR-07 test/user-profile.e2e-spec.ts Rejet id/status/passwordHash couvert (srpSalt non couvert en e2e, couvert en DTO unit).
TC-ERR-08 Rate limiting global non testé spécifiquement.
TC-ERR-09 Absence de vérification explicite "état inchangé" après échec validation.
TC-ERR-10 Scénario erreur interne non testé en e2e/service.
TC-INV-01 test/user-profile.e2e-spec.ts Absence champs sensibles vérifiée.
TC-INV-02 Format contractuel {error: ERR-32-*, message} non vérifié de façon explicite.
TC-INV-03 N/A Hors périmètre / non testable.

Points à améliorer

ID Description Gravité
T-01 TC-ERR-08 manquant : aucun test dédié au rate limiting global (429 contractuel). MAJEUR
T-02 TC-INV-02 manquant : format d’erreur contractuel {error,message} non asserté explicitement. MAJEUR
T-03 TC-ERR-09 incomplet : assertions d’"état inchangé" non démontrées après erreur validation. MAJEUR
T-04 TC-ERR-10 manquant : scénario d’erreur interne non couvert. MAJEUR
T-05 Nommage/codification TC dans e2e partiellement ambigu (ex: bloc "TC-ERR-02" utilisé pour validation métier). MINEUR
T-06 Isolation partielle : tests e2e partagent état applicatif et base; dépendance temporelle (Date.now) présente. MINEUR
T-07 Edge cases avatar_url limites (2048 exact, null) non couverts en e2e; couverts partiellement en unit DTO. MINEUR

Tests manquants

  • TC-ERR-08 (rate limiting 429 contractuel)
  • TC-ERR-10 (erreur interne + échec explicite)
  • TC-INV-02 (assertions explicites sur error + message)
  • Partie "état inchangé" attendue par TC-ERR-09 (preuve avant/après)