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>
This commit is contained in:
145
test_palette_corrections.py
Normal file
145
test_palette_corrections.py
Normal file
@@ -0,0 +1,145 @@
|
||||
#!/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)
|
||||
Reference in New Issue
Block a user