Files
brain-template/agents/reviews/SuperOAuth/testing-v1.md
Tetardtek 878886cd51 feat: brain-template v2.0 — BSI-v3 complet + tiers documentés
- README reécrit : tiers free/pro/full + modèle clé API + multi-instance
- Sync agents/ (57 agents, kernel-isolation validated)
- Sync scripts/ BSI-v3 (file-lock, preflight, human-gate, brain-status)
- KERNEL.md v0.7.0 — zones + délégation + rendering + isolation
- brain-compose.yml v0.7.0 — rendering mode + kerneluser
- workflows/ — template + brain-engine exemple
- locks/.gitkeep + claims/.gitkeep
- helloWorld : RAG boot tier full only (bsi-rag retiré du template)
2026-03-16 23:26:38 +01:00

5.7 KiB

Review agent : testing — v1

⚠️ Ce fichier concerne la QUALITÉ DE L'AGENT, pas les tests du code applicatif. Tests code → voir projet/src/__tests__/ et Jest/Vitest.


Contexte de la review

Info Valeur
Agent reviewé testing
Version v1
Date 2026-03-12
Projet testé Super-OAuth
Cas soumis Analyse couverture actuelle + stratégie pour zones critiques (couches DDD auth flows) — puis exécution Session 1 (fingerprint + logout) et Session 2 (start-oauth + user.entity)

Output résumé

Analyse :

  • ~180 tests existants mappés par couche DDD avec comptes approximatifs (`)
  • 4 zones 🔴 bloquantes identifiées : logout (0 tests), refresh-token fingerprint (0), start-oauth (0), user.entity (0)
  • 3 zones 🟡 importantes : password.service, session.entity, csrf/rate-limit
  • Stratégie en 4 sessions ordonnées par criticité

Session 1 — exécutée :

  • 3 tests fingerprint ajoutés dans refresh-token.test.ts (absent, mismatch, conservation)
  • Bug existant détecté et corrigé au passage : assertion create attendait 3 args, appelé avec 4
  • logout.test.ts créé (7 tests : happy path, révocation blacklist, TTL, all-sessions)
  • 175/175 verts, zéro régression

Session 2 — exécutée :

  • start-oauth.test.ts créé (10 tests : happy path, state generation, erreurs)
  • user.entity.test.ts créé (23 tests : factory methods, business rules, canUnlinkProvider)
  • Bug détecté au passage : Nickname.create('u') → VO rejette < 2 chars, corrigé immédiatement
  • 208/208 verts, zéro régression

Session 3 — exécutée :

  • password.service.test.ts créé (9 tests : hash, verify, rounds invalides)
  • csrf.middleware.test.ts créé (5 tests : format 403, next(err), injection token)
  • rate-limit.middleware.test.ts créé (6 tests : format 429, skipSuccessfulRequests)
  • 230/230 verts, zéro régression

Delta total Sessions 1→3 : 175 → 230 tests, 12 → 19 suites (+55 tests, +7 suites) Session 4 (repositories infra + controllers supertest) : post-prod


Output brut — analyse initiale

Agent testing chargé. Voici l'analyse complète.

État actuel

~180 tests Jest couvrant :

login-classic.use-case      Application    ✅ ~40 tests
register-classic.use-case   Application    ✅ 4 tests (léger)
complete-oauth.use-case     Application    ✅ ~15 tests
refresh-token.use-case      Application    ✅ ~14 tests
token.service               Infrastructure ✅ 12 tests
token-blacklist.service     Infrastructure ✅ 11 tests
oauth.service               Infrastructure ✅ 19 tests
auth.middleware              Presentation   ✅ 17 tests
validation.middleware        Presentation   ✅ 13 tests
crypto.util                  Shared         ✅ 40+ tests
Email, Password, Nickname, UserId  Domain VO  ✅ ~25 tests

Zones critiques non couvertes :

🔴 logout.use-case.ts — 0 tests
🔴 refresh-token fingerprint — 0 tests sur le nouveau code
🔴 start-oauth.use-case.ts — 0 tests
🔴 user.entity.ts (aggregate root) — 0 tests

🟡 password.service.ts — 0 tests
🟡 session.ts (domain entity) — 0 tests
🟡 csrf.middleware.ts / rate-limit.middleware.ts — 0 tests

🟢 Repositories infrastructure — tests d'intégration vraie DB (backlog)
🟢 Controllers auth + oauth — supertest (backlog)

Stratégie : 4 sessions, seuil minimal prod = sessions 1 + 2.

Évaluation

Ce qui a bien fonctionné

  • A vérifié sur vrais fichiers avant d'affirmer (grep + glob = 0 inventions)
  • Utilisé ~ pour les comptes incertains — anti-hallucination active
  • A détecté un bug existant dans les tests (assertion create à 3 args au lieu de 4) sans qu'on le lui demande
  • Stratégie par couche DDD exactement correcte (domain=0 mock, infrastructure=vraie DB)
  • Tests écrits avec commentaires expliquant CE QUE LE TEST PROTÈGE — pédagogique
  • 175/175 verts après ajout — zéro régression
  • A proposé rétroactif (pas TDD) puisque le code existait déjà — curseur adaptatif correct
  • Ordre de priorité logique : fingerprint en premier car directement lié au fix récent

Ce qui manquait

  • N'a pas suggéré security pour valider que les tests de sécurité couvrent bien les vecteurs d'attaque identifiés lors de l'audit (coordination agents)
  • N'a pas suggéré code-review après avoir écrit les tests (les tests eux-mêmes méritent une review)

⚠️ Anti-hallucination respectée ?

  • A dit "Information manquante" quand nécessaire — a vérifié sur vrais fichiers avant d'affirmer
  • N'a pas inventé de métriques — ~ pour l'incertain, 0 pour les fichiers non trouvés
  • Niveau de confiance implicite correct — pas de % de coverage promis sans analyse

📐 Périmètre respecté ?

  • Connaît la structure DDD par couche — stratégie différenciée par layer
  • Distingue tests unitaires des tests d'intégration
  • Propose rétroactif sur code existant (curseur adaptatif)
  • N'a pas débordé sur la sécurité ou la perf

Gaps identifiés → à corriger dans l'agent

Gap Correction proposée Priorité
N'a pas suggéré security pour valider les tests de sécurité Ajouter dans Composition : "après tests sur auth/tokens → proposer coordination security pour valider la pertinence des cas" basse
N'a pas suggéré code-review sur les tests écrits Ajouter : "après écriture de tests, proposer code-review si les tests sont complexes" basse

Action

  • Review complète (Sessions 1 + 2)
  • Gaps reportés dans agents/testing.md changelog
  • Règles ajoutées directement (Recruiter non nécessaire)
  • v2 planifiée (prochain projet avec Vitest frontend ou Session 3)