veza/COMMANDES_PLAYWRIGHT_AUTH.md
senke d0f403018d [FIX] ISSUE-001 & ISSUE-002: Fix authentication workflow for MVP
ISSUE-001: Auto-verify email on registration
- Set IsVerified: true in Register() to allow immediate login
- Removes blocking email verification requirement for MVP

ISSUE-002: Generate tokens in Register
- Modified Register() signature to return (*User, *TokenPair, error)
- Added JWT token generation after user creation
- Store refresh token in database
- Updated handlers to use returned tokens
- Added nil checks for JWTService and refreshTokenService

Changes:
- veza-backend-api/internal/core/auth/service.go
- veza-backend-api/internal/handlers/auth.go
- veza-backend-api/internal/core/auth/handler.go
- REAL_ISSUES_TODOLIST.json

Note: Backend needs to be recompiled and restarted for changes to take effect.
2026-01-04 01:44:13 +01:00

136 lines
3.4 KiB
Markdown

# Commandes Playwright - Tests Auth
## 📋 Résumé des tests auth disponibles
Les tests d'authentification sont dans :
- `apps/web/e2e/auth.spec.ts` - Tests d'authentification de base
- `apps/web/e2e/auth-flow.spec.ts` - Tests du workflow auth complet
- `apps/web/e2e/profile.spec.ts` - Tests de gestion de profil (modification username, bio, password, avatar)
## 🚀 Commandes pour lancer les tests
### 1. Tous les tests auth (recommandé)
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts e2e/auth-flow.spec.ts e2e/profile.spec.ts
```
### 2. Avec rapport HTML
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts e2e/auth-flow.spec.ts e2e/profile.spec.ts --reporter=html
# Ouvrir le rapport : npx playwright show-report
```
### 3. Un seul fichier de test
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts
# ou
npx playwright test e2e/auth-flow.spec.ts
# ou
npx playwright test e2e/profile.spec.ts
```
### 4. Un test spécifique (par nom)
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts -g "should login successfully"
```
### 5. Mode UI (interactif)
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts --ui
```
### 6. Un seul navigateur (plus rapide)
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts --project=chromium
```
### 7. Mode debug (step by step)
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts --debug
```
### 8. Avec retry automatique
```bash
cd apps/web
npx playwright test e2e/auth.spec.ts --retries=2
```
## ⚙️ Prérequis
### 1. Backend doit être démarré
```bash
cd veza-backend-api
LOG_LEVEL=DEBUG go run cmd/api/main.go
```
### 2. Frontend doit être démarré
```bash
cd apps/web
npm run dev
```
### 3. Installer les navigateurs Playwright (si nécessaire)
```bash
cd apps/web
npx playwright install
# Pour installer les dépendances système (Linux)
sudo npx playwright install-deps
```
## 📊 Résultats des derniers tests
**Statut : 42 passés / 33 échoués / 9 ignorés**
### ✅ Tests qui passent
- Login avec credentials valides
- Logout
- Validation des champs de formulaire
- Persistance de l'authentification après refresh
- Affichage du profil
- Mise à jour du username (avec limitation mensuelle)
- Validation password mismatch
### ❌ Tests qui échouent
- **Register** : Le register fonctionne mais le message de succès n'est pas détecté par les tests
- **WebKit** : Nécessite `sudo npx playwright install-deps` pour installer les dépendances système
- **SessionStorage** : Certains tests échouent à cause d'accès sessionStorage bloqué
## 🔍 Voir les résultats détaillés
```bash
# Rapport HTML
cd apps/web
npx playwright show-report
# Logs détaillés
cat /tmp/playwright-auth-tests.log | grep -E "passed|failed|Error"
```
## 🐛 Debug d'un test spécifique
```bash
cd apps/web
# Mode debug interactif
npx playwright test e2e/auth.spec.ts -g "should register" --debug
# Mode headed (voir le navigateur)
npx playwright test e2e/auth.spec.ts -g "should register" --headed
# Avec trace
npx playwright test e2e/auth.spec.ts -g "should register" --trace on
```
## 📝 Notes importantes
1. **Rate Limiting** : Les tests utilisent 1 worker pour éviter le rate limiting backend
2. **Global Setup** : Un utilisateur de test est créé automatiquement via `e2e/global-setup.ts`
3. **Timeout** : 60 secondes par défaut (peut être augmenté si nécessaire)
4. **Storage State** : L'état d'authentification est sauvegardé dans `e2e/.auth/user.json`