#!/usr/bin/env python3 """ Diagnostic Réel - Propriétés d'Étapes Vides Auteur : Dom, Alice, Kiro - 12 janvier 2026 Ce script diagnostique pourquoi les propriétés d'étapes ne s'affichent pas dans l'interface utilisateur réelle. """ import subprocess import json import time from pathlib import Path # Configuration des chemins PROJECT_ROOT = Path(__file__).parent.parent VWB_FRONTEND_PATH = PROJECT_ROOT / "visual_workflow_builder" / "frontend" def test_step_type_resolver_reel(): """Test du StepTypeResolver avec des données réelles""" print("🔍 Test du StepTypeResolver avec des données réelles...") # Script de test JavaScript à exécuter dans le navigateur test_script = """ // Test du StepTypeResolver avec une étape type_text réelle import { stepTypeResolver } from './src/services/StepTypeResolver.js'; // Simuler une étape type_text comme dans l'interface const testStep = { id: 'test-step-1', type: 'type_text', name: 'Nouvelle étape type_text', data: { parameters: {} } }; console.log('🧪 Test avec étape:', testStep); // Tester la résolution stepTypeResolver.resolveParameterConfig(testStep) .then(result => { console.log('✅ Résultat de résolution:', result); console.log('📋 Nombre de paramètres:', result.parameterConfig.length); console.log('🎯 Type détecté:', result.stepType); console.log('🔍 Source:', result.resolutionSource); console.log('📝 Paramètres:', result.parameterConfig); }) .catch(error => { console.error('❌ Erreur de résolution:', error); }); """ # Créer un fichier de test temporaire test_file = VWB_FRONTEND_PATH / "test_step_resolver_debug.js" test_file.write_text(test_script) print(f"📁 Fichier de test créé: {test_file}") return test_file def analyser_mapping_types_etapes(): """Analyser le mapping des types d'étapes dans StepTypeResolver""" print("\n🔍 Analyse du mapping des types d'étapes...") resolver_file = VWB_FRONTEND_PATH / "src" / "services" / "StepTypeResolver.ts" if not resolver_file.exists(): print("❌ Fichier StepTypeResolver.ts non trouvé") return contenu = resolver_file.read_text(encoding='utf-8') # Chercher la configuration stepParametersConfig print("📋 Recherche de la configuration stepParametersConfig...") if "stepParametersConfig:" in contenu: print("✅ Configuration stepParametersConfig trouvée") # Extraire les types configurés import re types_matches = re.findall(r'(\w+):\s*\[', contenu) print(f"🎯 Types d'étapes configurés: {types_matches}") # Vérifier si type_text est présent if 'type_text' in types_matches: print("❌ PROBLÈME: 'type_text' trouvé dans la config (devrait être 'type')") elif 'type' in types_matches: print("✅ 'type' trouvé dans la config (correct)") else: print("❌ PROBLÈME: Ni 'type' ni 'type_text' trouvé dans la config") else: print("❌ Configuration stepParametersConfig non trouvée") def tester_detection_vwb(): """Tester la détection VWB pour type_text""" print("\n🔍 Test de détection VWB pour type_text...") resolver_file = VWB_FRONTEND_PATH / "src" / "services" / "StepTypeResolver.ts" contenu = resolver_file.read_text(encoding='utf-8') # Vérifier les actions VWB connues if "knownVWBActions" in contenu: print("✅ Liste knownVWBActions trouvée") # Extraire les actions VWB import re actions_match = re.search(r'knownVWBActions\s*=\s*\[(.*?)\]', contenu, re.DOTALL) if actions_match: actions_text = actions_match.group(1) actions = re.findall(r"'([^']+)'", actions_text) print(f"🎯 Actions VWB connues: {actions}") if 'type_text' in actions: print("✅ 'type_text' est dans les actions VWB connues") print("💡 Cela signifie que type_text sera détecté comme action VWB") print("💡 Et utilisera VWBActionProperties au lieu des paramètres standard") else: print("❌ 'type_text' n'est PAS dans les actions VWB connues") else: print("❌ Liste knownVWBActions non trouvée") def diagnostic_complet(): """Diagnostic complet du problème""" print("🎯 Diagnostic Complet - Propriétés d'Étapes Vides") print("=" * 60) # 1. Analyser le mapping des types analyser_mapping_types_etapes() # 2. Tester la détection VWB tester_detection_vwb() # 3. Créer un test réel test_file = test_step_type_resolver_reel() print("\n📊 Résumé du diagnostic:") print("1. Le StepTypeResolver existe et compile") print("2. Le PropertiesPanel utilise le nouveau système") print("3. MAIS il y a probablement un problème de mapping type_text vs type") print("4. OU type_text est détecté comme VWB mais sans action correspondante") print(f"\n🧪 Pour tester manuellement:") print(f"1. Ouvrir le navigateur sur le VWB") print(f"2. Ouvrir la console développeur (F12)") print(f"3. Créer une étape type_text") print(f"4. Vérifier les logs de résolution dans la console") print(f"\n🔧 Fichier de test créé: {test_file}") print("Vous pouvez l'utiliser pour déboguer dans le navigateur") if __name__ == "__main__": diagnostic_complet()