# 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


