veza/apps/web/scripts/fix-failing-tests.sh

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."