# Trash Explorer - Checklist d'Acceptation ## Configuration Préalable - [ ] Backend démarré: `node server/index.mjs` - [ ] Frontend démarré: `npm run dev` (port 3001) - [ ] Fichiers test présents dans `vault/.trash/`: - [ ] `deleted-note-1.md` - [ ] `old-folder/old-note-2.md` - [ ] `old-folder/old-note-3.md` - [ ] `archive/archived-note.md` ## Affichage de l'Arborescence - [ ] Ouvrir Sidebar → Section "Trash" - [ ] ✅ L'arborescence s'affiche correctement - [ ] ✅ Deux dossiers visibles: "old-folder" et "archive" - [ ] ✅ Icônes dossiers (📁) affichées - [ ] ✅ Chevrons (›) présents et alignés à gauche - [ ] ✅ Noms des dossiers visibles et lisibles - [ ] ✅ Badges de compte visibles à droite ## Comptage des Notes - [ ] Badge "old-folder": affiche **2** - [ ] Badge "archive": affiche **1** - [ ] Badge "deleted-note-1" (si fichier racine affiché): affiche **1** ou n'apparaît pas si foldersOnly ## Interaction avec Notes-liste ### Test 1: Clic sur "old-folder" - [ ] Cliquer sur le dossier "old-folder" dans Trash - [ ] ✅ Notes-liste se met à jour instantanément - [ ] ✅ 2 notes affichées: "Old Note 2" et "Old Note 3" - [ ] ✅ Les chemins affichés commencent par `.trash/old-folder/` ### Test 2: Clic sur "archive" - [ ] Cliquer sur le dossier "archive" dans Trash - [ ] ✅ Notes-liste affiche 1 note: "Archived Note" - [ ] ✅ Le chemin affiché est `.trash/archive/archived-note.md` ### Test 3: Retour à "All Notes" - [ ] Cliquer sur Quick Links → "All Notes" - [ ] ✅ Notes-liste affiche toutes les notes (y compris trash) - [ ] ✅ Le filtre trash est désactivé ## Filtrage dans Section Folders - [ ] Ouvrir Section "Folders" dans Sidebar - [ ] ✅ Le dossier `.trash` N'apparaît PAS dans la liste - [ ] ✅ Seuls les dossiers normaux du vault sont visibles - [ ] ✅ Cliquer un dossier normal fonctionne toujours ## États Visuels (Hover, Sélection) ### Hover - [ ] Survoler un dossier dans Trash - [ ] ✅ Background change au hover (bg-slate-500/10) - [ ] ✅ Cohérent avec Quick Links et Folders ### Sélection (optionnel) - [ ] Cliquer un dossier dans Trash - [ ] ✅ Dossier se toggle ouvert/fermé si sous-dossiers - [ ] ✅ Pas de bug visuel (double sélection, etc.) ## Dark Mode - [ ] Activer Dark Mode dans l'UI - [ ] ✅ Section Trash lisible en dark mode - [ ] ✅ Badges visibles (opacity correcte) - [ ] ✅ Hover fonctionne (bg-slate-200/10 en dark) - [ ] ✅ Texte visible (text-obs-d-text-muted) ## Gestion des Cas Vides/Erreurs ### Test 1: Trash vide - [ ] Vider le dossier `.trash` (déplacer tous les fichiers ailleurs) - [ ] Recharger l'app - [ ] ✅ Message "La corbeille est vide" affiché - [ ] ✅ Pas d'erreur dans la console - [ ] ✅ Pas de liste vide non stylée ### Test 2: Trash absent - [ ] Supprimer le dossier `.trash` du vault - [ ] Recharger l'app - [ ] ✅ Message "La corbeille est vide" affiché OU section Trash cachée - [ ] ✅ Pas d'erreur dans la console ### Test 3: Erreur API - [ ] Arrêter le backend (Ctrl+C sur `node server/index.mjs`) - [ ] Recharger la page - [ ] ✅ Pas de crash de l'app - [ ] ✅ Message d'erreur discret (toast ou empty state) ## Robustesse ### Noms spéciaux - [ ] Créer un dossier avec espaces: `old notes with spaces` - [ ] Créer un dossier avec accents: `archivé` - [ ] Créer un dossier avec Unicode: `档案-📁` - [ ] ✅ Tous les dossiers s'affichent correctement - [ ] ✅ Les clics fonctionnent sur tous ### Profondeur - [ ] Créer une structure profonde: `.trash/a/b/c/d/note.md` - [ ] ✅ L'arborescence se construit correctement - [ ] ✅ Les badges comptent récursivement - [ ] ✅ Le clic sur niveau profond fonctionne ## Performance - [ ] Créer 50 notes dans `.trash/perf-test/` - [ ] Recharger l'app - [ ] ✅ Section Trash se charge en < 1 seconde - [ ] ✅ Pas de freeze de l'UI - [ ] ✅ Badge affiche "50" correctement ## Accessibilité (Bonus) - [ ] Navigation au clavier (Tab, Enter, Arrow keys) - [ ] ✅ Focus visible sur les dossiers - [ ] ✅ Enter ouvre/ferme un dossier - [ ] ARIA attributes présents (role, aria-expanded, aria-label) ## Régression - [ ] Quick Links fonctionne toujours - [ ] All Notes - [ ] Favorites - [ ] Templates - [ ] Tasks - [ ] Drafts - [ ] Archive - [ ] Section Folders fonctionne toujours - [ ] Section Tags fonctionne toujours - [ ] Graph view non affecté - [ ] Note viewer non affecté ## Tests E2E (À automatiser) ```bash npm run test:e2e -- trash.spec.ts ``` - [ ] ✅ Tous les tests passent - [ ] Pas de timeout - [ ] Coverage > 80% sur TrashExplorerComponent ## Validation Finale ### Développeur - [ ] ✅ Code review effectué - [ ] ✅ Pas de console.log oublié - [ ] ✅ Pas de TODO/FIXME critique - [ ] ✅ Types TypeScript corrects - [ ] ✅ Formatting (Prettier) appliqué ### QA - [ ] ✅ Tous les critères ci-dessus validés - [ ] ✅ Pas de bug visuel - [ ] ✅ Pas de régression sur autres features ### Product Owner - [ ] ✅ Répond au besoin utilisateur - [ ] ✅ UX cohérente avec reste de l'app - [ ] ✅ Prêt pour production --- ## Instructions de Test Rapide ```bash # Terminal 1: Backend cd c:\dev\git\web\ObsiViewer node server/index.mjs # Terminal 2: Frontend npm run dev -- --port 3001 # Navigateur http://localhost:3001 # Actions 1. Sidebar → Trash (clic sur ▸) 2. Clic sur "old-folder" 3. Vérifier que Notes-liste affiche 2 notes 4. Vérifier badge "2" sur old-folder 5. Vérifier que .trash absent de section Folders ``` ## Logs Endpoints à Vérifier ``` GET /api/vault → 200 OK (notes chargées) GET /api/files/metadata → 200 OK (métadonnées chargées) Console: [TrashTree] logs si debug activé Console: Pas d'erreur Angular ``` --- **Date**: 2025-10-19 **Version**: ObsiViewer 0.0.0 **Testeur**: _________________ **Statut**: ☐ À tester | ☐ En cours | ☐ ✅ Validé | ☐ ❌ Bloquant