5.8 KiB
5.8 KiB
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.mdold-folder/old-note-2.mdold-folder/old-note-3.mdarchive/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
.trashN'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
.trashdu 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)
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
# 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