#!/bin/bash # Test d'intégration de la documentation - Version réelle # Tests sans simulation, avec vrais composants et données set -e echo "🚀 Tests de documentation - Fonctionnalité réelle" echo "==================================================" # Couleurs GREEN='\033[0;32m' RED='\033[0;31m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # Compteurs TOTAL_TESTS=0 PASSED_TESTS=0 run_test() { local test_name="$1" local test_command="$2" echo "" echo -e "${BLUE}🧪 Test: $test_name${NC}" echo "----------------------------------------" TOTAL_TESTS=$((TOTAL_TESTS + 1)) if eval "$test_command"; then echo -e "${GREEN}✅ $test_name: RÉUSSI${NC}" PASSED_TESTS=$((PASSED_TESTS + 1)) return 0 else echo -e "${RED}❌ $test_name: ÉCHOUÉ${NC}" return 1 fi } # Vérifier que Python est disponible if ! command -v python3 &> /dev/null; then echo -e "${RED}❌ Python 3 requis mais non trouvé${NC}" exit 1 fi # Test 1: Test complet avec vraies données run_test "Documentation complète (réelle)" "python3 test_documentation_real_complete.py" # Test 2: Service de documentation réel run_test "Service de documentation" "python3 test_documentation_service_real.py" # Test 3: Intégration réelle run_test "Intégration documentation" "python3 test_documentation_integration_real.py" # Test 4: Test principal avec vrais composants run_test "Fonctionnalité complète" "python3 test_documentation_simple.py" # Test 5: Validation rapide des fichiers essentiels run_test "Validation des fichiers" "python3 -c ' import sys from pathlib import Path # Vérifier les fichiers essentiels files_to_check = [ \"frontend/src/data/toolDocumentation.ts\", \"frontend/src/components/DocumentationTab/index.tsx\", \"frontend/src/services/DocumentationService.ts\" ] missing_files = [] valid_files = [] for file_path in files_to_check: full_path = Path(file_path) if full_path.exists(): # Vérifier que le fichier n'\''est pas vide if full_path.stat().st_size > 100: valid_files.append(file_path) print(f\"✅ {file_path} ({full_path.stat().st_size} bytes)\") else: print(f\"⚠️ {file_path} (trop petit: {full_path.stat().st_size} bytes)\") else: missing_files.append(file_path) print(f\"❌ {file_path} (manquant)\") success_rate = len(valid_files) / len(files_to_check) print(f\"📊 Fichiers valides: {len(valid_files)}/{len(files_to_check)} ({success_rate:.1%})\") if success_rate >= 0.6: # Au moins 60% des fichiers print(\"✅ Validation des fichiers réussie\") sys.exit(0) else: print(\"❌ Trop de fichiers manquants ou invalides\") sys.exit(1) '" # Résultats finaux echo "" echo "==================================================" echo -e "${BLUE}📊 RÉSULTATS FINAUX${NC}" echo "==================================================" if command -v bc &> /dev/null; then SUCCESS_RATE=$(echo "scale=1; $PASSED_TESTS * 100 / $TOTAL_TESTS" | bc -l) else SUCCESS_RATE=$(python3 -c "print(f'{$PASSED_TESTS * 100 / $TOTAL_TESTS:.1f}')") fi echo "Tests passés: $PASSED_TESTS/$TOTAL_TESTS ($SUCCESS_RATE%)" if [ "$PASSED_TESTS" -eq "$TOTAL_TESTS" ]; then echo -e "${GREEN}🎉 TOUS LES TESTS RÉUSSIS${NC}" echo " ✅ Service de documentation fonctionnel" echo " ✅ Intégration validée avec vrais composants" echo " ✅ Données réelles cohérentes et parsables" echo " ✅ Fichiers présents et valides" echo " ✅ Prêt pour utilisation en production" exit 0 elif [ "$PASSED_TESTS" -ge 3 ]; then echo -e "${YELLOW}⚠️ TESTS MAJORITAIREMENT RÉUSSIS${NC}" echo " ✅ Fonctionnalité de base présente" echo " ⚠️ Certains composants peuvent manquer" echo " 📋 Vérifier les détails ci-dessus" echo " 🔧 Documentation partiellement fonctionnelle" exit 0 else echo -e "${RED}❌ ÉCHEC DES TESTS${NC}" echo " ❌ Documentation non fonctionnelle" echo " ❌ Composants manquants ou défaillants" echo " 🔧 Vérifier l'implémentation des composants" echo " 📁 Vérifier la présence des fichiers requis" exit 1 fi