55 lines
2.2 KiB
Bash
Executable file
55 lines
2.2 KiB
Bash
Executable file
#!/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."
|
|
|