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
 |