diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 0000000..a6ee5f4 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,208 @@ +# FlowDeck — Grille de Tests Visuels + +> Version: 2.1.0 | Dernière mise à jour: 2026-07-10 + +Tests manuels de régression visuelle et fonctionnelle. Cocher après chaque release. + +## Pré-requis + +- FlowDeck lancé (Docker: `APP_PORT=8082 docker compose up -d`) +- Gitea accessible (https://git.dracodev.net) +- Au moins 1 projet avec des issues existantes + +--- + +## 1. Dashboard (Accueil) + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| D1 | Chargement | Ouvrir `/` | Dashboard affiché, sidebar visible | | +| D2 | Liste projets | Vérifier la liste | Projets Gitea listés, triés par mise à jour | | +| D3 | Recherche projets | Taper dans la barre de recherche | Filtrage en temps réel | | +| D4 | Lien projet | Cliquer sur un projet | Navigation vers le board du projet | | +| D5 | Workspace menu | Cliquer sur le workspace header | Menu déroulant des workspaces | | +| D6 | Quick Find | Cliquer 🔍 dans la sidebar | Modal de recherche rapide | | +| D7 | Theme toggle | Basculer le thème | Dark ↔ Light, persisté localStorage | | +| D8 | Collapse sidebar | Cliquer ⏴ | Sidebar se réduit/étend | | +| D9 | Sidebar sections | Cliquer Meetings/Recents | Sections expand/collapse | | + +--- + +## 2. Board Kanban + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| B1 | Chargement board | Ouvrir `/board/{owner}/{repo}` | Colonnes affichées avec cartes | | +| B2 | Colonnes par défaut | Vérifier les colonnes | Backlog, À faire, En cours, Révision, Terminé | | +| B3 | Cartes dans colonnes | Vérifier le mapping | Issues dans bonnes colonnes selon labels/état | | +| B4 | Labels sur cartes | Vérifier l'affichage | Labels visibles avec couleur Gitea | | +| B5 | Assignee avatar | Vérifier les cartes | Avatar + login si assigné | | +| B6 | Milestone sur carte | Vérifier | 📅 + nom milestone si défini | | +| B7 | Priorité | Vérifier | Badge priorité si défini dans FlowDeck | | +| B8 | Due date | Vérifier | ⏰ + date, style "overdue" si dépassée | | +| B9 | Compteur colonne | Vérifier chaque colonne | Nombre de cartes affiché dans le header | | + +--- + +## 3. Drag & Drop + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| DD1 | Move carte | Drag carte vers autre colonne | Carte déplacée visuellement | | +| DD2 | Persistence | Après DD1, rafraîchir la page | Carte reste dans nouvelle colonne | | +| DD3 | Refresh auto | Après move, attendre | La vue se rafraîchit automatiquement | | +| DD4 | Compteurs | Après move | Compteurs de colonnes mis à jour | | +| DD5 | Move → Gitea | Vérifier sur Gitea | Label/état synchronisé si mapping existe | | + +--- + +## 4. Création d'Issue + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| C1 | Bouton New | Cliquer "New ▾" dans la toolbar | Formulaire de création affiché | | +| C2 | Création simple | Titre + "Create" | Issue créée sur Gitea, apparaît au refresh | | +| C3 | Création + statut | Titre + sélection statut | Issue créée avec le bon statut | | +| C4 | Annulation | Ouvrir form → ✕ | Formulaire masqué | | +| C5 | Enter pour créer | Titre + Entrée | Issue créée (submit au Enter) | | +| C6 | Titre vide | "Create" sans titre | Rien ne se passe (validé client) | | + +--- + +## 5. Vues du Board + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| V1 | Vue Kanban | Tab "Board" | Vue kanban avec colonnes | | +| V2 | Vue Table | Tab "Table" | Vue tableau lignes/colonnes | | +| V3 | Vue Status | Tab "Status" | Regroupement par statut | | +| V4 | Vue TeamLoad | Tab "Workload" | Répartition par assignee | | +| V5 | Vue Detailed | Tab "Detailed" | Vue détaillée | | +| V6 | Switch vue | Alterner entre vues | Contenu mis à jour sans rechargement page | | +| V7 | URL view param | `?view=table` | Vue table chargée directement | | + +--- + +## 6. Filtres & Tri + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| F1 | Filtre milestone | Sélectionner un milestone | Seules les issues du milestone affichées | | +| F2 | Filtre label | Sélectionner un label | Seules les issues avec ce label | | +| F3 | Combinaison filtres | Milestone + Label | Les deux filtres appliqués (AND) | | +| F4 | Reset filtres | Sélectionner "Tous" | Toutes les issues affichées | | +| F5 | Tri par propriété | Add sort → choisir champ | Liste triée selon critère | | +| F6 | Tri direction | Toggle asc/desc | Direction inversée | | +| F7 | Supprimer tri | Delete sort | Tri retiré | | + +--- + +## 7. Notes + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| N1 | Accès notes | Cliquer "📝 Notes" dans le board | Page notes du projet | | +| N2 | Édition notes | Modifier le contenu | Sauvegarde automatique | | +| N3 | Markdown | Saisir `# Titre`, `**gras**` | Rendu Markdown | | + +--- + +## 8. Sidebar & Navigation + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| S1 | Navigation page | Cliquer sur une page sidebar | Board du projet chargé | | +| S2 | Library | Cliquer 📚 sur une page | Library view avec recents/favorites/shared | | +| S3 | New sub-page | Cliquer + sur une page | Création sous-page | | +| S4 | Context menu | Clic droit sur page sidebar | Menu contextuel (rename, delete, etc.) | | +| S5 | Tree toggle | Cliquer ▶ d'un dossier | Sous-éléments affichés/masqués | | +| S6 | Drag tree | Drag & drop élément sidebar | Réorganisation de l'arbre | | + +--- + +## 9. Workspaces Multi-User + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| W1 | Lister workspaces | Voir le menu workspace | Workspaces disponibles listés | | +| W2 | Créer workspace | Créer nouveau workspace | Workspace ajouté | | +| W3 | Membres | Voir liste membres | Membres affichés avec rôles | | +| W4 | Ajouter membre | Ajouter un utilisateur | Membre ajouté | | +| W5 | Rôle membre | Changer rôle | Rôle mis à jour | | +| W6 | Supprimer membre | Retirer un membre | Membre retiré | | + +--- + +## 10. Commentaires & Historique + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| H1 | Voir commentaires | Ouvrir commentaires d'une page | Liste des commentaires | | +| H2 | Ajouter commentaire | Écrire + envoyer | Commentaire ajouté | | +| H3 | Historique | Voir historique d'une page | Liste des versions/modifications | | + +--- + +## 11. Favoris & Partage + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| FA1 | Ajouter favori | Mettre en favori une page | Apparaît dans les favoris | | +| FA2 | Retirer favori | Retirer des favoris | Disparaît de la liste | | +| FA3 | Vue favorites | Tab "Favorites" dans Library | Liste des favoris | | +| FA4 | Vue shared | Tab "Shared" dans Library | Pages partagées | | + +--- + +## 12. Webhooks & API Publique + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| WH1 | Register webhook | POST /api/webhooks/register/{o}/{r} | Webhook enregistré | | +| WH2 | Webhook status | GET /api/webhooks/status/{o}/{r} | Statut retourné | | +| WH3 | Reception webhook | Push sur Gitea → webhook reçu | Issue synchronisée | | +| WH4 | API health | GET /api/health | `{"status":"ok","db":true,"gitea":true}` | | +| WH5 | API projects | GET /api/projects | Liste JSON des projets | | + +--- + +## 13. PWA & Responsive + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| P1 | Mobile view | Réduire fenêtre < 768px | Layout responsive, sidebar masquable | | +| P2 | Install PWA | "Installer" dans Chrome | Icône sur l'écran d'accueil | | +| P3 | Offline cache | Couper réseau, recharger | Page servie depuis cache | | + +--- + +## 14. Éditeur Notion-like + +| ID | Test | Action | Résultat attendu | ✅ | +|----|------|--------|-----------------|----| +| E1 | Éditeur riche | Ouvrir une page | Éditeur bloc-style Notion | | +| E2 | Blocs texte | Taper du texte, Entrée | Nouveau bloc créé | | +| E3 | Markdown inline | `**gras**`, `*italique*` | Formatage appliqué | | +| E4 | `/` commandes | Taper `/` | Menu de commandes (headings, listes, etc.) | | +| E5 | Drag blocks | Drag & drop blocs | Réorganisation | | + +--- + +## Exécution + +```bash +# Lancer FlowDeck +cd ~/workspace/flowdeck && docker compose up -d + +# Vérifier +curl -s http://localhost:8082/api/health +# → {"status":"ok","version":"2.1.0","db":true,"gitea":true} + +# Ouvrir +# Dashboard: http://localhost:8082/ +# Board: http://localhost:8082/board/bruno/flowdeck +``` + +--- + +**Total: 61 tests** | Dernier run: ________ | Résultat: ___/61