# 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