ObsiViewer/docs/TRASH_ACCEPTANCE_CHECKLIST.md

5.8 KiB
Raw Blame History

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)

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