# 🚀 Script E2E Autonome - Mode d'emploi

## Usage simple

```bash
./run-e2e-auto.sh
```

**C'est tout !** Le script s'occupe de TOUT :

## Ce que fait le script

1. ✅ **Valide la config** - Vérifie que tout est en place
2. 🧹 **Nettoie** - Kill les processus existants
3. 🚀 **Démarre le serveur** - En mode e2e automatiquement
4. ⏰ **Attend** - Max 30s que le serveur soit prêt
5. 🔍 **Type check** - Vérifie les types (max 20s)
6. 🧪 **Lance les tests** - Dashboard CRUD (max 60s)
7. 📊 **Affiche les résultats** - Succès ou erreur
8. 🧹 **Nettoie** - Arrête le serveur automatiquement

## Protections anti-freeze

**Chaque commande a un timeout strict :**
- Serveur ready : 30s max
- Type check : 20s max  
- Tests Playwright : 60s max
- Total : ~90s max

**Si timeout dépassé** → Kill automatique + message d'erreur

## Output

Le script affiche :
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   🚀 Test E2E Autonome - Dashboard CRUD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[09:35:29] 1️⃣  Validation de la configuration...
✅ Configuration validée

[09:35:29] 2️⃣  Nettoyage des processus existants...
✅ Processus nettoyés

[09:35:31] 3️⃣  Démarrage du serveur en mode e2e...
✅ Serveur prêt! (8s)

[09:35:40] 5️⃣  Type check (max 20s)...
✅ Type check OK

[09:35:45] 6️⃣  Lancement tests dashboard (max 60s)...
✅ Tests PASSED! ✨

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   📊 Résultats des tests
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  3 passed (15s)
```

## Logs disponibles

Si problème, 3 fichiers de logs :
```bash
# Log principal du script
cat /tmp/e2e-auto-test-*.log

# Output des tests Playwright
cat /tmp/playwright-test-output.txt

# Logs du serveur Vite
cat /tmp/vite-server.log
```

## Exit codes

- `0` → ✅ Tous les tests passés
- `1` → ❌ Erreur de config ou crash serveur
- `124` → ⏱️ Timeout dépassé

## Fonctionnalités avancées

### Mode verbose
```bash
# Voir tous les logs en temps réel
tail -f /tmp/e2e-auto-test-*.log &
./run-e2e-auto.sh
```

### Tests spécifiques
Modifier la ligne 161 du script :
```bash
# Remplacer
pnpm exec playwright test dashboard-crud.spec.ts

# Par
pnpm exec playwright test              # Tous les tests
pnpm exec playwright test map-modes    # Tests map seulement
```

### Timeout personnalisé
Modifier la ligne 5 du script :
```bash
TIMEOUT=120  # 2 minutes au lieu de 90s
```

## Avantages

✅ **Autonome** - Aucune intervention manuelle
✅ **Rapide** - ~30-60s pour tout
✅ **Sûr** - Timeouts stricts, pas de freeze
✅ **Clean** - Nettoie avant ET après
✅ **Logs** - Tout est logué pour debug
✅ **CI-ready** - Exit codes standards

## Intégration CI/CD

```yaml
# .github/workflows/e2e.yml
- name: Run E2E Tests
  run: ./run-e2e-auto.sh
  timeout-minutes: 3
```

## Dépannage

### Serveur ne démarre pas
```bash
# Vérifier les logs
cat /tmp/vite-server.log

# Vérifier le port
lsof -i :5173
```

### Tests timeout
```bash
# Augmenter le timeout dans le script
TIMEOUT=120

# Ou lancer manuellement
pnpm exec playwright test --timeout=90000
```

### Erreur de config
```bash
# Re-valider
./validate-e2e-config.sh
```

---

**🎯 Un seul script, zéro intervention, résultats clairs !**
