# FlowDeck — Grille de Tests Visuels > Version: 2.1.0 | Dernière mise à jour: 2026-07-10 | Dernier run: 2026-07-10 | Résultat: 55/61 ## Résumé du dernier run (2026-07-10) | Section | Pass | Fail | Notes | |---------|------|------|-------| | Dashboard | 8/9 | ❌ D6 Quick Find | Quick Find pas implémenté dans le dashboard | | Board Kanban | 9/9 | — | OK | | Drag & Drop | 5/5 | — | ✅ Fix CSRF + refresh appliqué | | Création Issue | 6/6 | — | ✅ Fix CSRF appliqué | | Vues | 7/7 | — | OK | | Filtres & Tri | 7/7 | — | OK | | Notes | 3/3 | — | OK | | Sidebar | 6/6 | — | OK | | Workspaces | 6/6 | — | OK | | Commentaires | 3/3 | — | OK | | Favoris | 4/4 | — | OK | | Webhooks | 4/5 | ⚠️ No secret | Webhook status OK, secret non configuré | | PWA | 0/3 | ❌ P1-P3 | manifest.json + SW non implémentés | | Éditeur | 3/5 | ⚠️ E4-E5 | Commandes `/` + drag blocks à vérifier | | **Total** | **55** | **6** | | ### Bugs corrigés ce run - `8aaf167`: Refresh board après drag & drop - `[latest]`: CSRF token manquant sur fetch POST (board.html, card_detail.html) ### Reste à faire - PWA (manifest.json + service worker) - Quick Find dans le dashboard - Config webhook secret - Commandes `/` dans l'éditeur 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