#!/bin/bash # Script pour corriger automatiquement les tests qui échouent # Ce script identifie et corrige les problèmes communs dans les tests set -e echo "🔧 Correction automatique des tests qui échouent..." # Couleurs GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # 1. Corriger les mocks useToast qui retournent seulement { toast } echo -e "${YELLOW}1. Correction des mocks useToast...${NC}" find src -name "*.test.tsx" -o -name "*.test.ts" | while read file; do if grep -q "vi.mock.*useToast" "$file" && grep -q "toast: vi.fn()" "$file" && ! grep -q "success:" "$file"; then echo " Corrige: $file" # Ajouter les mocks success et error sed -i '/vi.mock.*useToast/,/}));/ { /toast: vi.fn()/a\ success: vi.fn(),\ error: vi.fn(), }' "$file" fi done # 2. Ajouter BrowserRouter pour les tests qui utilisent Link ou useNavigate echo -e "${YELLOW}2. Ajout de BrowserRouter pour les tests avec Router...${NC}" find src -name "*.test.tsx" | while read file; do if grep -q "from.*react-router\|Link\|useNavigate\|useLocation" "$file" && ! grep -q "BrowserRouter\|MemoryRouter" "$file"; then echo " Corrige: $file" # Ajouter import BrowserRouter if ! grep -q "import.*BrowserRouter" "$file"; then sed -i '/import.*react-router-dom/a import { BrowserRouter } from '\''react-router-dom'\'';' "$file" fi # Wrapper render avec BrowserRouter (nécessite modification manuelle) echo " ⚠️ Nécessite modification manuelle pour wrapper avec BrowserRouter" fi done # 3. Vérifier que les tests utilisent customRender de test-utils echo -e "${YELLOW}3. Vérification de l'utilisation de customRender...${NC}" find src -name "*.test.tsx" | while read file; do if grep -q "from '@testing-library/react'" "$file" && ! grep -q "from.*test-utils\|from.*test/setup" "$file"; then echo " Considérer utiliser customRender: $file" fi done echo -e "${GREEN}✅ Corrections automatiques terminées!${NC}" echo "" echo "⚠️ Note: Certaines corrections nécessitent une vérification manuelle." echo " Exécutez 'npm test -- --run' pour vérifier les résultats."