Aller au contenu

PD-280 — Revue des Tests

Résumé

Critère Statut
Couverture TC-* 16/30 complets (+8 partiels)
Qualité assertions ⚠️
Isolation
Edge cases ⚠️

Verdict : ⚠️ RÉSERVES

Matrice de couverture

TC-ID Implémenté Fichier Commentaire
TC-NOM-01 src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts PENDING nominal bien couvert (status, null, pending*, bornes).
TC-NOM-02 src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts DONE nominal couvert (pas de null, pas de pending*).
TC-NOM-03 src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Mapping PENDING_FINALITY -> PENDING/null couvert.
TC-NOM-04 src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Cas INDETERMINATE explicite présent.
TC-NOM-05 src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Reevaluation SLA lazy (TTL depasse/non depasse) bien testee.
TC-NOM-06 src/modules/integrity/services/__tests__/proof-verification.service.spec.ts Invariant proof_finalized couvert (OK et rupture).
TC-NOM-07 N/A Aucun test pipeline TLA+/ASSUME.
TC-NOM-08 src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Domaine CheckResult a 4 valeurs couvert.
TC-NOM-09 src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Presence/stabilite verificationRequestId couverte.
TC-NOM-10 ⚠️ src/modules/integrity/services/__tests__/proof-verification.service.spec.ts Concurrence simulee sur mocks; pas de preuve robuste de concurrence reelle.
TC-ERR-01 ⚠️ src/modules/integrity/controllers/__tests__/proof-verification.controller.spec.ts Teste surtout propagation d’exception mockee; ne valide pas réellement le ParseUUIDPipe HTTP.
TC-ERR-02 src/modules/integrity/services/__tests__/proof-verification.service.spec.ts 404 bien couvert (proof absent / job absent).
TC-ERR-03 src/modules/integrity/interceptors/__tests__/verification-contract.interceptor.spec.ts DONE + null rejete en 500 avec code metier.
TC-ERR-04 src/modules/integrity/interceptors/__tests__/verification-contract.interceptor.spec.ts DONE + pending* rejete correctement.
TC-ERR-06 N/A Aucun test CI formel de desalignement TLA+/norm.
TC-INV-05 ⚠️ src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Couvre projection API, pas une vraie tentative/refus de transition et persistance inchangée.
TC-INV-06 ⚠️ src/modules/integrity/services/__tests__/proof-verification.service.spec.ts Idempotence testée, mais sur retour mocké identique; pas de garantie bout-en-bout.
TC-NR-01 N/A Non-regression endpoint historique absente.
TC-NR-02 ⚠️ src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Clés contractuelles vérifiées côté mapper, mais pas en test intégration endpoint.
TC-NR-03 N/A Pas de vérification textuelle RFC.
TC-NR-04 N/A Pas de non-regression formalisme CI.
TC-NEG-01 ⚠️ src/modules/integrity/controllers/__tests__/proof-verification.controller.spec.ts Même réserve que TC-ERR-01 (pas test HTTP réel).
TC-NEG-02 src/modules/integrity/interceptors/__tests__/verification-contract.interceptor.spec.ts Clés hors contrat bien rejetées.
TC-NEG-03 src/modules/integrity/interceptors/__tests__/verification-contract.interceptor.spec.ts Casse enum bien rejetée.
TC-NEG-04 src/modules/integrity/interceptors/__tests__/verification-contract.interceptor.spec.ts PENDING string en DONE rejeté.
TC-NEG-05 ⚠️ src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts + src/modules/integrity/config/proof-verification.config.spec.ts Clamp bien testé dans mapper/config; manque validation endpoint final 200 “clamp effectif”.
TC-NEG-06 ⚠️ src/modules/integrity/services/__tests__/proof-verification-mapper.service.spec.ts Pas de test de transition métier refusée (uniquement projection statique).
TC-NEG-07 ⚠️ src/modules/integrity/services/__tests__/proof-verification.service.spec.ts Comportement attendu testé, mais sans démontrer l’oracle “réponse identique première DONE” en condition réaliste.
TC-NEG-09 src/modules/integrity/config/proof-verification.config.spec.ts Bornes min/max TTL bien couvertes.
TC-NEG-11 N/A Aucun test d’absence worker/cron SLA (preuve archi/logs).

Points à améliorer

ID Description Gravité
T-01 Ajouter tests e2e controller (GET /proofs/:proofId/verification) pour valider réellement 400 UUID v4, 404, format erreur déterministe et guards/pipes/filter. MAJEUR
T-02 Couvrir formalisme CI (TC-NOM-07, TC-ERR-06, TC-NR-04) via tests/pipeline vérifiant alignement norm.yaml ↔ TLA+ (ASSUME). MAJEUR
T-03 Ajouter non-régression documentaire RFC (TC-NR-03) avec assertion textuelle stricte sur distinction PENDING vs INDETERMINATE. MINEUR
T-04 Renforcer TC-INV-05/TC-NEG-06 avec tests intégration DB/transaction montrant refus explicite terminal -> PENDING (pas seulement mapping mémoire). MAJEUR
T-05 Renforcer concurrence (TC-NOM-10/INV-280-09) en test d’intégration concurrent (deux requêtes réelles, même proofId) et vérifier absence de mutation persistée. MAJEUR
T-06 Améliorer pertinence assertions de corrélation: actuellement le test “Correlation trace” ne vérifie pas explicitement requestId/proofId dans logs/erreur. MINEUR
T-07 Éviter patterns try/catch redondants; préférer await expect(...).rejects + assertions payload pour clarté et robustesse. MINEUR

Tests manquants

  • TC-NOM-07 (pipeline formel TLA+ vert avec preuve explicite d’égalité d’ensembles).
  • TC-ERR-06 (échec CI explicite en cas de désalignement TLA+/norm).
  • TC-NR-01 (non-régression endpoint historique).
  • TC-NR-03 (vérification textuelle RFC).
  • TC-NR-04 (non-régression formalisme baseline+story).
  • TC-NEG-11 (absence de worker/cron SLA hors appel API, preuve architecture/logs).
  • E2E strict pour TC-ERR-01/TC-NEG-01 (UUID v4 via pipe framework, pas mock service).