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:
Dom
2026-01-29 11:23:51 +01:00
parent 21bfa3b337
commit a27b74cf22
1595 changed files with 412691 additions and 400 deletions

View File

@@ -0,0 +1,334 @@
# Guide de Test - Edge Validation
## Tests de Validation des Edges
### Test 1: Self-Connection Bloquée ✅
**Objectif**: Vérifier qu'on ne peut pas connecter un node à lui-même
**Étapes**:
1. Ouvrir http://localhost:3000
2. Ajouter un node (cliquer sur "Click")
3. Essayer de connecter le port de sortie au port d'entrée du même node
**Résultat attendu**:
- ❌ La connexion est refusée
- 📢 Message d'erreur: "Impossible de connecter un node à lui-même"
- ⏱️ Message disparaît après 4 secondes
### Test 2: Connexion en Double Bloquée ✅
**Objectif**: Vérifier qu'on ne peut pas créer deux fois la même connexion
**Étapes**:
1. Ajouter 2 nodes
2. Connecter Node A → Node B
3. Essayer de reconnecter Node A → Node B
**Résultat attendu**:
- ❌ La deuxième connexion est refusée
- 📢 Message d'erreur: "Cette connexion existe déjà"
### Test 3: Port d'Entrée Unique ✅
**Objectif**: Vérifier qu'un port d'entrée ne peut avoir qu'une seule connexion
**Étapes**:
1. Ajouter 3 nodes (A, B, C)
2. Connecter Node A → Node C
3. Essayer de connecter Node B → Node C (même port d'entrée)
**Résultat attendu**:
- ❌ La deuxième connexion est refusée
- 📢 Message d'erreur: "Ce port d'entrée a déjà une connexion"
### Test 4: Connexion Valide ✅
**Objectif**: Vérifier qu'une connexion valide est créée
**Étapes**:
1. Ajouter 2 nodes
2. Connecter Node A → Node B
**Résultat attendu**:
- ✅ Edge créé avec animation
- 📊 Compteur d'edges incrémenté
- 🎨 Edge visible entre les nodes
### Test 5: Suppression d'Edge ✅
**Objectif**: Vérifier qu'on peut supprimer un edge
**Étapes**:
1. Créer une connexion entre 2 nodes
2. Cliquer sur l'edge pour le sélectionner
3. Appuyer sur "Delete"
**Résultat attendu**:
- ✅ Edge supprimé
- 📊 Compteur d'edges décrémenté
### Test 6: Suppression Automatique ✅
**Objectif**: Vérifier que les edges sont supprimés avec le node
**Étapes**:
1. Créer 3 nodes connectés: A → B → C
2. Sélectionner le node B
3. Appuyer sur "Delete"
**Résultat attendu**:
- ✅ Node B supprimé
- ✅ Edges A→B et B→C supprimés automatiquement
- 📊 Compteurs mis à jour
## Tests d'Edges Conditionnels
### Test 7: Edge Normal ✅
**Objectif**: Vérifier le rendu d'un edge normal
**Étapes**:
1. Créer une connexion simple entre 2 nodes
**Résultat attendu**:
- 🎨 Edge gris (#b1b1b7)
- 📏 Largeur 2px
- 🔄 Courbe Bezier
### Test 8: Edge Success (Futur) 🔜
**Objectif**: Vérifier le rendu d'un edge de succès
**Note**: Cette fonctionnalité sera testée quand les nodes conditionnels seront implémentés
**Résultat attendu**:
- 🎨 Edge vert (#4caf50)
- 🏷️ Label "Success"
- 💚 Chip vert avec bordure
### Test 9: Edge Failure (Futur) 🔜
**Objectif**: Vérifier le rendu d'un edge d'échec
**Note**: Cette fonctionnalité sera testée quand les nodes conditionnels seront implémentés
**Résultat attendu**:
- 🎨 Edge rouge (#f44336)
- 🏷️ Label "Failure"
- ❤️ Chip rouge avec bordure
### Test 10: Edge Expression (Futur) 🔜
**Objectif**: Vérifier le rendu d'un edge avec expression
**Note**: Cette fonctionnalité sera testée quand les nodes conditionnels seront implémentés
**Résultat attendu**:
- 🎨 Edge orange (#ff9800)
- 🏷️ Label avec expression
- 🧡 Chip orange avec bordure
## Tests de Performance
### Test P1: Validation Rapide ✅
**Objectif**: Vérifier que la validation est instantanée
**Étapes**:
1. Créer 10 nodes
2. Essayer de créer plusieurs connexions rapidement
**Résultat attendu**:
- ⚡ Validation instantanée (<1ms)
- 🎯 Pas de lag visible
- ✅ Messages d'erreur immédiats
### Test P2: Détection de Cycles (Futur) 🔜
**Objectif**: Vérifier la détection de cycles
**Note**: Cette fonctionnalité sera testée dans une tâche future
**Étapes**:
1. Créer un cycle: A → B → C → A
2. Valider le workflow
**Résultat attendu**:
- ❌ Cycle détecté
- 📢 Message d'erreur approprié
## Tests d'Accessibilité
### Test A1: Messages Lisibles ✅
**Objectif**: Vérifier que les messages d'erreur sont lisibles
**Étapes**:
1. Déclencher une erreur de validation
2. Observer le message
**Résultat attendu**:
- 📝 Texte clair et explicite
- 🎨 Bon contraste (rouge sur blanc)
- 📏 Taille de police lisible
### Test A2: Auto-Hide ✅
**Objectif**: Vérifier que les messages disparaissent automatiquement
**Étapes**:
1. Déclencher une erreur
2. Attendre 4 secondes
**Résultat attendu**:
- ⏱️ Message disparaît après 4 secondes
- ✅ Pas de pollution visuelle
## Tests de Régression
### Test R1: Fonctionnalités Tâche 5 ✅
**Objectif**: Vérifier qu'aucune régression n'a été introduite
**Étapes**:
1. Tester toutes les fonctionnalités de la Tâche 5
2. Vérifier qu'elles fonctionnent toujours
**Résultat attendu**:
- ✅ Création de nodes
- ✅ Déplacement de nodes
- ✅ Sélection de nodes
- ✅ Suppression de nodes
- ✅ Zoom et panoramique
- ✅ Minimap
## Scénarios Complets
### Scénario 1: Workflow Simple ✅
**Objectif**: Créer un workflow simple valide
**Étapes**:
1. Ajouter 3 nodes (A, B, C)
2. Connecter A → B
3. Connecter B → C
4. Vérifier le workflow
**Résultat attendu**:
- ✅ 3 nodes créés
- ✅ 2 edges créés
- ✅ Workflow valide
- ✅ Pas d'erreur
### Scénario 2: Tentatives Invalides ✅
**Objectif**: Tester plusieurs erreurs de validation
**Étapes**:
1. Ajouter 2 nodes
2. Essayer self-connection → Erreur
3. Créer connexion valide A → B
4. Essayer connexion en double → Erreur
5. Essayer connexion B → A (port occupé) → Erreur
**Résultat attendu**:
- ❌ 3 erreurs détectées
- 📢 3 messages d'erreur affichés
- ✅ 1 seule connexion créée
### Scénario 3: Nettoyage ✅
**Objectif**: Vérifier le nettoyage des edges
**Étapes**:
1. Créer un workflow complexe (5 nodes, 6 edges)
2. Supprimer un node central
3. Vérifier que les edges sont nettoyés
**Résultat attendu**:
- ✅ Node supprimé
- ✅ Edges connectés supprimés
- ✅ Autres edges conservés
- 📊 Compteurs corrects
## Checklist de Test
### Validation
- [ ] Self-connection bloquée
- [ ] Connexion en double bloquée
- [ ] Port d'entrée unique respecté
- [ ] Messages d'erreur affichés
- [ ] Messages disparaissent après 4s
### Edges
- [ ] Création d'edges valides
- [ ] Sélection d'edges
- [ ] Suppression d'edges
- [ ] Suppression automatique
- [ ] Rendu correct
### Performance
- [ ] Validation instantanée
- [ ] Pas de lag
- [ ] 60fps maintenu
### Accessibilité
- [ ] Messages lisibles
- [ ] Bon contraste
- [ ] Auto-hide fonctionne
### Régression
- [ ] Toutes les fonctionnalités Tâche 5 OK
- [ ] Pas de bugs introduits
## Problèmes Connus
### Limitations Actuelles
1. **Détection de cycles**: Implémentée mais pas encore exposée dans l'UI
2. **Validation des types**: Optionnelle, dépend des ports définis
3. **Undo/Redo**: Pas encore implémenté
### À Implémenter
- [ ] Validation complète du workflow dans l'UI
- [ ] Indicateurs visuels pour nodes déconnectés
- [ ] Suggestions de correction pour cycles
- [ ] Undo/Redo pour les edges
## Commandes Utiles
### Tester Rapidement
```bash
cd visual_workflow_builder
./test_canvas.sh
```
### Voir les Logs
```bash
# Frontend
cd visual_workflow_builder/frontend
tail -f frontend.log
# Backend
cd visual_workflow_builder/backend
tail -f server.log
```
### Rebuild
```bash
cd visual_workflow_builder/frontend
npm run build
```
## Résolution de Problèmes
### Les Messages d'Erreur ne S'Affichent Pas
1. Ouvrir la console (F12)
2. Vérifier les erreurs JavaScript
3. Vérifier que Material-UI est chargé
### La Validation ne Fonctionne Pas
1. Vérifier que `edgeValidation.ts` existe
2. Vérifier l'import dans Canvas
3. Voir les logs de la console
### Les Edges ne Sont Pas Stylés
1. Vérifier que `CustomEdge.tsx` existe
2. Vérifier l'enregistrement dans `edgeTypes`
3. Vérifier les imports Material-UI
## Feedback
Si vous rencontrez des problèmes:
1. Noter le problème exact
2. Capturer une capture d'écran
3. Noter les étapes pour reproduire
4. Vérifier les logs (console + fichiers)
---
**Version**: 1.0.0
**Date**: 2 décembre 2024
**Statut**: ✅ Validation des Edges Opérationnelle