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:
334
visual_workflow_builder/TEST_EDGES.md
Normal file
334
visual_workflow_builder/TEST_EDGES.md
Normal 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
|
||||
Reference in New Issue
Block a user