136 lines
3.8 KiB
Markdown
136 lines
3.8 KiB
Markdown
# Plan de Correction des Tests Existants
|
|
|
|
**Date:** 2025-01-27
|
|
**Objectif:** Corriger les 163 fichiers de tests qui échouent
|
|
|
|
---
|
|
|
|
## 🔍 Analyse des Erreurs Communes
|
|
|
|
### Erreur 1: `showError is not a function`
|
|
**Fichiers affectés:**
|
|
- `PlaylistBatchActions.test.tsx`
|
|
- Autres fichiers utilisant `showError`
|
|
|
|
**Cause:** `showError` n'est pas mocké ou importé correctement dans les tests
|
|
|
|
**Solution:**
|
|
- Ajouter mock pour `showError` dans setup de tests
|
|
- Ou utiliser `useToast` hook correctement dans les tests
|
|
|
|
### Erreur 2: `Cannot destructure property 'basename' of React__namespace.useContext(...) as it is null`
|
|
**Fichiers affectés:**
|
|
- `TrackSearch.test.tsx`
|
|
- Autres fichiers utilisant `Link` ou `useNavigate` sans Router
|
|
|
|
**Cause:** Composants utilisent React Router mais tests ne wrappent pas avec Router
|
|
|
|
**Solution:**
|
|
- Utiliser `customRender` de `test-utils.tsx` qui inclut BrowserRouter
|
|
- Ou wrapper manuellement avec `BrowserRouter` dans chaque test
|
|
|
|
### Erreur 3: Autres erreurs communes
|
|
- Context manquants (ToastContext, AuthContext, etc.)
|
|
- Mocks API manquants
|
|
- Variables d'environnement non définies
|
|
|
|
---
|
|
|
|
## 🎯 Plan d'Action
|
|
|
|
### Phase 1: Correction Setup Global (PRIORITÉ CRITIQUE)
|
|
**Objectif:** Corriger les problèmes de setup qui affectent plusieurs tests
|
|
|
|
#### 1.1. Améliorer `src/test/setup.ts`
|
|
- [ ] Ajouter mock global pour `showError`
|
|
- [ ] Ajouter mock pour `useToast`
|
|
- [ ] Vérifier que BrowserRouter est inclus dans `test-utils.tsx`
|
|
|
|
#### 1.2. Améliorer `src/test/test-utils.tsx`
|
|
- [ ] Vérifier que Router est bien inclus
|
|
- [ ] Ajouter tous les Context nécessaires (Toast, Auth, etc.)
|
|
- [ ] Créer helper pour wrapper avec Contexts spécifiques
|
|
|
|
**Estimation:** 1 jour
|
|
|
|
---
|
|
|
|
### Phase 2: Correction Tests Individuels (PRIORITÉ HAUTE)
|
|
**Objectif:** Corriger les tests un par un selon les erreurs identifiées
|
|
|
|
#### 2.1. Tests avec `showError` (10-15 fichiers)
|
|
- [ ] `PlaylistBatchActions.test.tsx`
|
|
- [ ] Autres fichiers avec erreur `showError`
|
|
|
|
**Solution:** Remplacer `showError` par `useToast` ou ajouter mock
|
|
|
|
#### 2.2. Tests avec React Router (20-30 fichiers)
|
|
- [ ] `TrackSearch.test.tsx`
|
|
- [ ] Autres fichiers avec erreur `basename`
|
|
|
|
**Solution:** Utiliser `customRender` de `test-utils.tsx` ou wrapper avec Router
|
|
|
|
#### 2.3. Tests avec Context manquants (30-40 fichiers)
|
|
- [ ] Tests nécessitant AuthContext
|
|
- [ ] Tests nécessitant ToastContext
|
|
- [ ] Tests nécessitant autres Contexts
|
|
|
|
**Solution:** Ajouter Contexts dans wrapper de test
|
|
|
|
#### 2.4. Tests avec Mocks API manquants (50-60 fichiers)
|
|
- [ ] Tests nécessitant mocks MSW
|
|
- [ ] Tests nécessitant mocks spécifiques
|
|
|
|
**Solution:** Ajouter handlers MSW appropriés
|
|
|
|
**Estimation:** 3-5 jours
|
|
|
|
---
|
|
|
|
### Phase 3: Vérification et Optimisation (PRIORITÉ MOYENNE)
|
|
**Objectif:** S'assurer que tous les tests passent et optimiser
|
|
|
|
#### 3.1. Exécuter tous les tests
|
|
- [ ] `npm test -- --run`
|
|
- [ ] Identifier tests restants qui échouent
|
|
- [ ] Corriger tests restants
|
|
|
|
#### 3.2. Optimiser setup
|
|
- [ ] Réduire duplication dans setup
|
|
- [ ] Créer helpers réutilisables
|
|
- [ ] Documenter patterns de test
|
|
|
|
**Estimation:** 1-2 jours
|
|
|
|
---
|
|
|
|
## 📊 Statistiques
|
|
|
|
### Avant Correction
|
|
- ❌ **163 fichiers** de tests échouent
|
|
- ❌ **683 tests** échouent
|
|
- ✅ **98 fichiers** de tests passent
|
|
- ✅ **2305 tests** passent
|
|
|
|
### Objectif
|
|
- ✅ **0 fichiers** de tests échouent
|
|
- ✅ **0 tests** échouent
|
|
- ✅ **261+ fichiers** de tests passent
|
|
- ✅ **2988+ tests** passent
|
|
|
|
---
|
|
|
|
## 🚀 Prochaines Étapes Immédiates
|
|
|
|
1. ⏳ Analyser erreurs communes en détail
|
|
2. ⏳ Corriger setup global (`setup.ts`, `test-utils.tsx`)
|
|
3. ⏳ Corriger tests avec `showError` (10-15 fichiers)
|
|
4. ⏳ Corriger tests avec React Router (20-30 fichiers)
|
|
5. ⏳ Corriger tests avec Context manquants (30-40 fichiers)
|
|
6. ⏳ Vérifier que tous les tests passent
|
|
|
|
---
|
|
|
|
**Dernière mise à jour:** 2025-01-27
|
|
|
|
|