#!/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."

