veza/apps/web/PLAN_CORRECTION_TESTS.md

137 lines
3.8 KiB
Markdown
Raw Normal View History

# 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