Files
rpa_vision_v3/test_palette_corrections.py
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

145 lines
5.2 KiB
Python

#!/usr/bin/env python3
"""
Test des Corrections de la Palette VWB
Auteur : Dom, Alice, Kiro - 10 janvier 2026
Ce script teste si les corrections apportées à la Palette
permettent maintenant d'afficher correctement les actions du catalogue.
"""
import requests
import json
import time
from datetime import datetime
def test_backend_still_working():
"""Vérifier que le backend fonctionne toujours"""
print("🔍 Vérification du backend...")
try:
response = requests.get("http://localhost:5004/api/vwb/catalog/actions", timeout=5)
if response.status_code == 200:
data = response.json()
action_count = len(data.get('actions', []))
print(f"✅ Backend OK: {action_count} actions disponibles")
return True, action_count
else:
print(f"❌ Backend erreur: {response.status_code}")
return False, 0
except Exception as e:
print(f"❌ Backend inaccessible: {e}")
return False, 0
def test_frontend_accessible():
"""Vérifier que le frontend est accessible"""
print("\n🌐 Vérification du frontend...")
try:
response = requests.get("http://localhost:3000", timeout=5)
if response.status_code == 200:
print("✅ Frontend accessible sur port 3000")
return True
else:
print(f"❌ Frontend erreur: {response.status_code}")
return False
except Exception as e:
print(f"❌ Frontend inaccessible: {e}")
return False
def check_typescript_compilation():
"""Vérifier s'il y a des erreurs de compilation TypeScript"""
print("\n🔧 Vérification de la compilation TypeScript...")
# Lire les logs de compilation récents
try:
# Vérifier si le fichier Palette a des erreurs de syntaxe évidentes
with open('visual_workflow_builder/frontend/src/components/Palette/index.tsx', 'r') as f:
content = f.read()
# Vérifications basiques
checks = {
'Imports corrects': 'import React' in content and 'useMemo' in content,
'Hook useCatalogActions': 'useCatalogActions' in content,
'État catalogState': 'catalogState' in content,
'Fonction handleReloadCatalog': 'handleReloadCatalog' in content,
'Pas de setCatalogState orphelin': content.count('setCatalogState') <= 1, # Devrait être supprimé
'Syntaxe JSX correcte': content.count('{') == content.count('}'),
}
print("📋 Vérifications du code:")
all_good = True
for check, result in checks.items():
status = "" if result else ""
print(f" {check}: {status}")
if not result:
all_good = False
return all_good
except Exception as e:
print(f"❌ Erreur lors de la vérification: {e}")
return False
def main():
"""Fonction principale de test"""
print("=" * 60)
print("🧪 TEST DES CORRECTIONS PALETTE VWB")
print("=" * 60)
print(f"📅 Date: {datetime.now().strftime('%d/%m/%Y %H:%M:%S')}")
print()
# Tests séquentiels
results = {}
# 1. Backend toujours fonctionnel
backend_ok, action_count = test_backend_still_working()
results['backend'] = backend_ok
# 2. Frontend accessible
frontend_ok = test_frontend_accessible()
results['frontend'] = frontend_ok
# 3. Code TypeScript correct
typescript_ok = check_typescript_compilation()
results['typescript'] = typescript_ok
# Résumé
print("\n" + "=" * 60)
print("📊 RÉSUMÉ DES TESTS")
print("=" * 60)
success_count = sum(results.values())
total_tests = len(results)
for test_name, result in results.items():
status = "✅ OK" if result else "❌ PROBLÈME"
print(f"{test_name.capitalize():15} : {status}")
print(f"\n📈 Score: {success_count}/{total_tests} ({success_count/total_tests*100:.1f}%)")
# Diagnostic
print("\n🔧 DIAGNOSTIC:")
if not backend_ok:
print("❌ PROBLÈME CRITIQUE: Le backend ne fonctionne plus")
print(" → Redémarrer le backend: python scripts/start_vwb_backend_catalogue_complet_10jan2026.py")
elif not frontend_ok:
print("❌ PROBLÈME CRITIQUE: Le frontend ne répond plus")
print(" → Vérifier les logs du serveur de développement React")
elif not typescript_ok:
print("⚠️ PROBLÈME CODE: Erreurs dans le code TypeScript")
print(" → Vérifier la console du navigateur pour les erreurs de compilation")
else:
print("✅ CORRECTIONS APPLIQUÉES AVEC SUCCÈS")
print(f"🎯 {action_count} actions disponibles dans le catalogue")
print("\n💡 PROCHAINES ÉTAPES:")
print("1. Ouvrir http://localhost:3000 dans un navigateur")
print("2. Cliquer sur l'onglet 'Test Catalogue' dans le tiroir de documentation")
print("3. Vérifier que le composant de test affiche les actions du catalogue")
print("4. Vérifier que la palette principale affiche maintenant les actions VisionOnly")
return success_count == total_tests
if __name__ == "__main__":
success = main()
exit(0 if success else 1)