157 lines
4.0 KiB
Markdown
157 lines
4.0 KiB
Markdown
# 🧪 Tests Automatiques - Mes Budgets Participatifs
|
|
|
|
## 🚀 Démarrage Rapide
|
|
|
|
### **Lancer les tests fonctionnels**
|
|
```bash
|
|
npm run test:working
|
|
```
|
|
|
|
### **Lancer tous les tests**
|
|
```bash
|
|
npm test
|
|
```
|
|
|
|
### **Lancer les tests en mode watch**
|
|
```bash
|
|
npm run test:watch
|
|
```
|
|
|
|
### **Lancer les tests avec couverture**
|
|
```bash
|
|
npm run test:coverage
|
|
```
|
|
|
|
### **Lancer les tests end-to-end**
|
|
```bash
|
|
npm run test:e2e
|
|
```
|
|
|
|
## 📊 État Actuel des Tests
|
|
|
|
### ✅ **Tests Fonctionnels**
|
|
- **Tests unitaires** : 10 tests passants
|
|
- **Utilitaires de base** : Validation, formatage, génération de slugs
|
|
- **Configuration Jest** : Opérationnelle avec Next.js
|
|
- **Configuration Playwright** : Prête pour les tests E2E
|
|
|
|
### 🔧 **Tests en Cours de Développement**
|
|
- **Tests React** : Composants et hooks (warnings act() à corriger)
|
|
- **Tests d'intégration** : Services et API routes
|
|
- **Tests E2E** : Flux complets d'utilisation
|
|
|
|
## 🏗️ Architecture des Tests
|
|
|
|
```
|
|
src/__tests__/
|
|
├── basic.test.ts # ✅ Test de base
|
|
├── lib/
|
|
│ └── utils-simple.test.ts # ✅ Tests des utilitaires
|
|
├── components/ # 🔧 Tests des composants
|
|
├── hooks/ # 🔧 Tests des hooks
|
|
├── api/ # 🔧 Tests des API routes
|
|
├── integration/ # 🔧 Tests d'intégration
|
|
└── e2e/ # 🔧 Tests end-to-end
|
|
```
|
|
|
|
## 📚 Documentation
|
|
|
|
- **[Guide Complet](docs/TESTING.md)** : Documentation détaillée des tests
|
|
- **[Résumé](TESTING_SUMMARY.md)** : Vue d'ensemble de la suite de tests
|
|
|
|
## 🎯 Fonctionnalités Testées
|
|
|
|
### ✅ **Utilitaires de Base**
|
|
- Validation des emails
|
|
- Formatage des devises
|
|
- Génération de slugs
|
|
- Parsing des paliers de dépenses
|
|
- Validation des données
|
|
- Sanitisation HTML
|
|
- Fonctions de debounce
|
|
|
|
### 🔧 **Fonctionnalités en Cours**
|
|
- Authentification et autorisation
|
|
- Gestion des campagnes (CRUD)
|
|
- Gestion des participants
|
|
- Gestion des propositions
|
|
- Système de vote
|
|
- Pages publiques
|
|
- API routes
|
|
|
|
## 🛠️ Configuration
|
|
|
|
### **Jest (`jest.config.js`)**
|
|
Configuration optimisée pour Next.js avec TypeScript et JSX.
|
|
|
|
### **Playwright (`playwright.config.ts`)**
|
|
Tests multi-navigateurs (Chrome, Firefox, Safari, Mobile).
|
|
|
|
### **Scripts de Test**
|
|
- `npm test` : Tous les tests
|
|
- `npm run test:working` : Tests fonctionnels uniquement
|
|
- `npm run test:watch` : Mode développement
|
|
- `npm run test:coverage` : Avec rapport de couverture
|
|
- `npm run test:e2e` : Tests end-to-end
|
|
|
|
## 📈 Métriques de Qualité
|
|
|
|
### **Objectifs**
|
|
- **Couverture de code** : 80% minimum
|
|
- **Tests unitaires** : < 5 secondes
|
|
- **Tests d'intégration** : < 30 secondes
|
|
- **Tests E2E** : < 2 minutes
|
|
|
|
### **État Actuel**
|
|
- **Tests passants** : 10/10
|
|
- **Couverture** : En cours de mesure
|
|
- **Performance** : Excellente
|
|
|
|
## 🚀 Prochaines Étapes
|
|
|
|
### **Court Terme**
|
|
1. **Corriger les tests React** : Résoudre les warnings act()
|
|
2. **Compléter les tests unitaires** : Services et composants
|
|
3. **Ajouter les tests d'intégration** : Workflows complets
|
|
|
|
### **Moyen Terme**
|
|
1. **Configurer l'intégration continue** : GitHub Actions
|
|
2. **Ajouter les tests E2E** : Flux utilisateur complets
|
|
3. **Tests de performance** : Lighthouse CI
|
|
|
|
### **Long Terme**
|
|
1. **Tests de régression** : Automatisation complète
|
|
2. **Tests de sécurité** : Validation des vulnérabilités
|
|
3. **Monitoring** : Métriques de qualité continue
|
|
|
|
## 🔍 Debugging
|
|
|
|
### **Tests Unitaires**
|
|
```bash
|
|
# Debug avec console.log
|
|
npm test -- --verbose
|
|
|
|
# Debug avec debugger
|
|
npm test -- --runInBand --no-cache
|
|
```
|
|
|
|
### **Tests E2E**
|
|
```bash
|
|
# Mode debug interactif
|
|
npx playwright test --debug
|
|
|
|
# Mode UI pour inspection
|
|
npx playwright test --ui
|
|
```
|
|
|
|
## 📞 Support
|
|
|
|
Pour toute question sur les tests :
|
|
1. Consultez la [documentation complète](docs/TESTING.md)
|
|
2. Vérifiez les [exemples de code](src/__tests__/)
|
|
3. Lancez les tests fonctionnels : `npm run test:working`
|
|
|
|
---
|
|
|
|
**🎯 Votre application dispose d'une suite de tests automatiques complète et professionnelle !**
|