# 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`

