206 lines
5.8 KiB
Markdown
206 lines
5.8 KiB
Markdown
# 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
|