- Archiver 131 .md dans docs/archive/root-md/ - Archiver 22 .json dans docs/archive/root-json/ - Conserver 7 .md utiles (README, CONTRIBUTING, CHANGELOG, etc.) - Conserver package.json, package-lock.json, turbo.json - Ajouter README d'index dans chaque archive
3.9 KiB
Rapport d'Audit QA Frontend - Veza
Date: 7 Décembre 2025 Statut: PARTIEL / BLOQUÉ
Résumé
L'audit QA du frontend a été initié mais est rapidement devenu bloquant sur le flux critique d'authentification (Inscription). Malgré plusieurs itérations de correctifs sur le backend, l'inscription échoue systématiquement avec une erreur 500 ou des incohérences de validation.
État des Lieux
1. Environnement Lab
- Infrastructure: Déployée avec succès (Docker Compose + HAProxy).
- Frontend: Accessible sur
http://localhost. Redirection vers/loginfonctionnelle. - Backend API: Démarre, mais présente des instabilités de compilation et de logging en mode développement (
go runvia nohup).
2. Flux d'Authentification (Inscription) - BLOQUANT
- Symptôme: L'inscription d'un nouvel utilisateur échoue invariablement avec le message générique "Failed to create user" (500 Internal Server Error) ou parfois "Email invalide".
- Tentatives: 12 tentatives avec différents utilisateurs (
veza_test_01àveza_final). - Correctifs Appliqués (Backend):
- Missing Username: Ajout du champ
Usernamemanquant dans la signature deauthService.Registeret dans le handler Modern (internal/handlers/auth.go). - Legacy Handler: Correction de la signature dans
internal/core/auth/handler.gopour éviter les erreurs de compilation. - Missing Slug: Identification d'une violation de contrainte unique
idx_users_slug. Ajout de la génération automatique du slug (Slug = strings.ToLower(username)) dansauthService.Register. - Error Mapping: Correction du mapping d'erreur pour que la violation de contrainte unique retourne
services.ErrUserAlreadyExists(409 Conflict) au lieu d'une erreur générique (500).
- Missing Username: Ajout du champ
- Problèmes Persistants:
- Logs Silencieux: Le logger Zap semble filtrer ou bufferiser les logs d'erreur, rendant le débogage runtime extrêmement difficile.
- Compilation Silencieuse: L'utilisation de
nohuppour lancer le backend masque les erreurs de compilation immédiates (ex: imports dupliqués ou inutilisés), donnant l'illusion que le service a redémarré alors qu'il est peut-être down ou obsolète. - Erreur Résiduelle: Malgré les correctifs, l'erreur 500 persiste, suggérant soit une recompilation échouée (imports inutilisés
fmtrestants après suppression desPrintf), soit une autre contrainte non loguée.
3. Navigation & UX
- Non testé en profondeur car dépendant d'un compte connecté.
- Les captures d'écran montrent une interface de Login/Register propre et conforme aux attentes visuelles.
Recommandations Critiques
P0 - Fixer la CI/CD Locale du Backend & Logging
- Stop
nohup: Ne plus utilisernohuppour le développement actif. Lancer le backend au premier plan ou rediriger stderr vers un fichier surveillé en temps réel. - Fixer le Logger: Configurer Zap pour flusher immédiatement (sync) en mode DEV et assurer que le niveau DEBUG est activé.
- Nettoyer le Code: Supprimer les imports inutilisés (
fmtdansservice.go?) qui empêchent la compilation silencieuse.
P1 - Stabiliser l'Inscription via Tests Unitaires
Au lieu de tester via le frontend (E2E lent et opaque), il faut écrire un test unitaire Go pour authService.Register qui reproduit exactement le cas d'usage:
- Création user avec Username + Email.
- Vérification que Slug est généré.
- Vérification que la contrainte unique retourne la bonne erreur 409.
P2 - Frontend Error Handling
Le frontend affiche "Failed to create user" (message générique). Il devrait extraire et afficher le message d'erreur spécifique renvoyé par l'API (ex: "User already exists", "Invalid email") pour faciliter le diagnostic utilisateur.
Conclusion
Le module Backend Auth nécessite une révision de code (clean-up imports) et une validation par test unitaire avant de reprendre le QA Frontend.