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
 |