Aller au contenu

PD-277 — Revue des Tests

Resume

Critere Statut
Couverture TC-* 10/29
Qualite assertions ⚠️
Isolation
Edge cases ⚠️

Verdict : ❌ NON_CONFORME

Matrice de couverture

TC-ID Implemente Fichier Commentaire
TC-NOM-01 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Persistance ownerCertificateId et recipientCertificateId verifiee.
TC-NOM-02 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts 1er appel reEncryptWithNonce OK + rejeu detecte.
TC-NOM-03 - Aucun test trouve sur regeneration de _generated-facts.pl.
TC-NOM-04 - Aucun test d'execution run_audit. (24/24, checks 23/24).
TC-NOM-05 - Aucun test migration up/down PD-277.
TC-ERR-01 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Rejet nonce manquant (ERR-NONCE-MISSING).
TC-ERR-02 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Rejet nonce invalide (ERR-NONCE-FORMAT) sur plusieurs formats.
TC-ERR-03 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Rejeu nonce rejete (PRE_NONCE_REPLAY_DETECTED) + rollback verifie.
TC-ERR-04 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Rejet certificat owner absent/invalide (PRE_CERTIFICATE_BINDING_FAILED).
TC-ERR-05 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Rejet certificat recipient absent/invalide (PRE_CERTIFICATE_BINDING_FAILED).
TC-ERR-06 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Rejet certificats vides/incoherents.
TC-ERR-07 - Pas de test injectant un echec persistance mappe sur ERR-PERSISTENCE-CONTROL.
TC-ERR-08 ⚠️ src/modules/legal-pre/repositories/legal-rekey.repository.spec.ts Controle partiel: absence de champs certificat dans updateStatus, mais pas de tentative explicite rejetee.
TC-ERR-09 - Pas de test faits Prolog obsoletes -> ERR-PROLOG-FACTS-OUTDATED.
TC-ERR-10 - Pas de test audit <24/24 -> ERR-AUDIT-NONCOMPLIANT.
TC-INV-03 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Invariant nonce unique couvert (rejeu refuse).
TC-INV-05 ⚠️ src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Rejet owner absent teste, mais absence de verification explicite "aucun side effect".
TC-INV-06 - Pas de preuve/controle config infra at-rest (TDE/Vault transit).
TC-INV-08 - Pas de test de non-introduction de nouveaux StatusEnum Legal*.
TC-NR-01 - Pas de diff audit 1..22 avant/apres.
TC-NR-02 - Pas de test de non-impact hors legal-pre.
TC-NR-03 - Pas de repetition migration up/down sans derive schema.
TC-NR-04 - Pas de test TTL used_nonces aligne sur cycle de vie ReKey.
TC-NEG-01 ⚠️ src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Variantes testees, mais cas uppercase explicitement non verifie (skipped par regex locale i).
TC-NEG-02 - Pas de test concurrent reel (N requetes meme nonce).
TC-NEG-03 src/modules/legal-pre/services/legal-rekey-manager.service.spec.ts Meme nonce accepte sur 2 ReKey differents (scope par ReKey).
TC-NEG-04 ⚠️ src/modules/legal-pre/repositories/legal-rekey.repository.spec.ts Pas de tentative de substitution via API/DB avec assertion de rejet fail-closed.
TC-NEG-05 - Pas de test certificat expire/revoque/non autorise.
TC-NEG-06 - Pas de test reutilisation faits Prolog obsoletes.

Points a ameliorer

ID Description Gravite
T-01 Couverture contractuelle insuffisante (10/29) avec manque majeur sur Prolog/audit/migrations/non-regression. MAJEUR
T-02 Absence de tests integration/e2e pour concurrence (TC-NEG-02) et atomique persistence + rollback end-to-end (TC-ERR-07). MAJEUR
T-03 TC-ERR-08 / TC-NEG-04 incomplets: pas de preuve executable d'une tentative de mutation certificat explicitement rejetee. MAJEUR
T-04 TC-NEG-01 incomplet: le cas uppercase n'est pas assert rejete, contrairement au contrat "lowercase ASCII strict". MAJEUR
T-05 Assertions parfois trop indirectes (resolves.toBeDefined, verification createQueryBuilder sans verifier la mutation JSONB effective). MINEUR
T-06 Aucun axe de preuve sur non-regression StatusEnum Legal* ni 24/24 checks bloquants. MAJEUR
T-07 Axe guards @Roles() (403 + body {} + audit ACCESS_DENIED) : non applicable ici, aucun endpoint @Roles() detecte dans legal-pre.controller.ts. MINEUR

Tests manquants

  • TC-NOM-03: test automatise de regeneration _generated-facts.pl avec assertion des 3 entity_column PD-277.
  • TC-NOM-04: test CI d'execution run_audit. avec verification explicite CHECK 23 = OK, CHECK 24 = OK, total 24/24.
  • TC-NOM-05 + TC-NR-03: test migration up/down PD-277 (au moins 2 cycles) avec verification schema attendu.
  • TC-ERR-07: injection d'echec DB pendant persistence nonce/certificats et assertion du code ERR-PERSISTENCE-CONTROL + absence d'etat partiel.
  • TC-ERR-08 + TC-NEG-04: tentative explicite de modification owner_certificate_id/recipient_certificate_id avec assertion rejet fail-closed et valeurs inchangees.
  • TC-NEG-01: couvrir uppercase/casse mixte/espaces/normalisation avec assertion deterministe ERR-NONCE-FORMAT.
  • TC-NEG-02: test concurrent reel (Promise.all) sur meme nonce/meme ReKey: au plus 1 succes, autres PRE_NONCE_REPLAY_DETECTED.
  • TC-NEG-05: certificats expires/revoques/non autorises -> PRE_CERTIFICATE_BINDING_FAILED.
  • TC-ERR-09 + TC-NEG-06: audit invalide sur faits Prolog obsoletes.
  • TC-ERR-10 + TC-NR-01: scenario audit <24/24 et verification explicite de non-regression des checks 1..22.
  • TC-INV-08: snapshot/diff automatise des StatusEnum Legal* avant/apres PD-277.
  • TC-INV-06: ajouter preuve controle configuration infra (hors unitaire) rattachee a la campagne de tests PD-277.