ObsiViewer/docs/TRASH_ACCEPTANCE_CHECKLIST.md

206 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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