ObsiViewer/docs/URL_STATE/URL_STATE_INTEGRATION_TEST.md
Bruno Charest b1da9b111d feat: reorganize context menu documentation into docs folder
- Moved CONTEXT_MENU_INDEX.md and CONTEXT_MENU_VERIFICATION.md into docs/ directory for better organization
- Consolidated all context menu documentation files in one location for easier maintenance
- Documentation remains complete with 1000+ lines covering implementation, integration, and verification

The change improves documentation structure by moving context menu related files into a dedicated docs folder, making it easier for developers to find an
2025-10-25 20:17:10 -04:00

344 lines
7.6 KiB
Markdown

# UrlStateService Integration - Test Guide
## 🎯 Objectif
Valider que la navigation via les URLs fonctionne parfaitement dans ObsiViewer avec le UrlStateService intégré à AppComponent.
## ✅ Prérequis
- Backend: `node server/index.mjs` (port 4000)
- Frontend: `npm run dev` (port 3000)
- Navigateur: Chrome/Edge/Firefox
- Mode Nimbus activé (interface nouvelle)
## 📋 Test Plan
### Phase 1: Tests d'URLs simples
#### Test 1.1: Ouvrir une note via URL
**URL**: `http://localhost:3000/?note=Allo-3/test-new-file.md`
**Attendu**:
- [ ] Note "test-new-file.md" s'ouvre dans la vue principale
- [ ] Dossier "Allo-3" est sélectionné dans la sidebar
- [ ] L'URL reste `?note=Allo-3/test-new-file.md`
- [ ] Sur mobile/tablette: onglet "Page" devient actif
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 1.2: Filtrer par dossier via URL
**URL**: `http://localhost:3000/?folder=Allo-3`
**Attendu**:
- [ ] Liste des notes filtrée pour afficher seulement "Allo-3"
- [ ] Dossier "Allo-3" est sélectionné
- [ ] Aucune note n'est pré-sélectionnée (première note du dossier si auto-select)
- [ ] L'URL reste `?folder=Allo-3`
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 1.3: Filtrer par tag via URL
**URL**: `http://localhost:3000/?tag=home`
**Attendu**:
- [ ] Vue "Recherche" s'ouvre
- [ ] Liste filtrée pour afficher seulement les notes avec tag "home"
- [ ] Barre de recherche affiche "tag:home"
- [ ] L'URL reste `?tag=home`
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 1.4: Filtrer par quick link via URL
**URL**: `http://localhost:3000/?quick=Favoris`
**Attendu**:
- [ ] Liste filtrée pour afficher seulement les notes marquées comme favoris
- [ ] Badge "Favoris" visible dans la liste
- [ ] L'URL reste `?quick=Favoris`
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 1.5: Recherche via URL
**URL**: `http://localhost:3000/?search=home`
**Attendu**:
- [ ] Barre de recherche affiche "home"
- [ ] Liste filtrée pour afficher les notes contenant "home"
- [ ] L'URL reste `?search=home`
**Résultat**: ✅ / ❌
**Notes**:
---
### Phase 2: Tests de combinaisons
#### Test 2.1: Dossier + Note
**URL**: `http://localhost:3000/?folder=Allo-3&note=Allo-3/test-new-file.md`
**Attendu**:
- [ ] Note "test-new-file.md" s'ouvre
- [ ] Dossier "Allo-3" est sélectionné
- [ ] L'URL affiche les deux paramètres
- [ ] Priorité: note > folder (note s'ouvre)
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 2.2: Tag + Recherche
**URL**: `http://localhost:3000/?tag=home&search=test`
**Attendu**:
- [ ] Vue "Recherche" s'ouvre
- [ ] Barre de recherche affiche "tag:home"
- [ ] Liste filtrée par tag "home" ET contenant "test"
- [ ] L'URL affiche les deux paramètres
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 2.3: Folder + Search
**URL**: `http://localhost:3000/?folder=Allo-3&search=test`
**Attendu**:
- [ ] Liste filtrée pour dossier "Allo-3"
- [ ] Barre de recherche affiche "test"
- [ ] Seules les notes du dossier "Allo-3" contenant "test" s'affichent
- [ ] L'URL affiche les deux paramètres
**Résultat**: ✅ / ❌
**Notes**:
---
### Phase 3: Tests d'interactions
#### Test 3.1: Cliquer un dossier → URL change
**Étapes**:
1. Commencer à `http://localhost:3000/`
2. Cliquer sur le dossier "Allo-3" dans la sidebar
**Attendu**:
- [ ] L'URL change vers `?folder=Allo-3`
- [ ] Liste filtrée pour "Allo-3"
- [ ] Pas de rechargement de page
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 3.2: Cliquer une note → URL change
**Étapes**:
1. Commencer à `http://localhost:3000/?folder=Allo-3`
2. Cliquer sur une note dans la liste
**Attendu**:
- [ ] L'URL change vers `?folder=Allo-3&note=Allo-3/...`
- [ ] Note s'ouvre dans la vue principale
- [ ] Pas de rechargement de page
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 3.3: Cliquer un tag → URL change
**Étapes**:
1. Ouvrir une note
2. Cliquer sur un tag dans le contenu de la note
**Attendu**:
- [ ] L'URL change vers `?tag=...`
- [ ] Vue "Recherche" s'ouvre
- [ ] Barre de recherche affiche "tag:..."
- [ ] Pas de rechargement de page
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 3.4: Saisir une recherche → URL change
**Étapes**:
1. Commencer à `http://localhost:3000/`
2. Saisir "test" dans la barre de recherche
**Attendu**:
- [ ] L'URL change vers `?search=test`
- [ ] Liste filtrée pour "test"
- [ ] Pas de rechargement de page
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 3.5: Choisir un quick link → URL change
**Étapes**:
1. Commencer à `http://localhost:3000/`
2. Cliquer sur "Favoris" dans les quick links
**Attendu**:
- [ ] L'URL change vers `?quick=Favoris`
- [ ] Liste filtrée pour les favoris
- [ ] Pas de rechargement de page
**Résultat**: ✅ / ❌
**Notes**:
---
### Phase 4: Tests de navigation
#### Test 4.1: Back navigateur
**Étapes**:
1. Aller à `http://localhost:3000/?folder=Allo-3`
2. Cliquer sur une note
3. Cliquer le bouton "Retour" du navigateur
**Attendu**:
- [ ] L'URL revient à `?folder=Allo-3`
- [ ] La note se ferme
- [ ] Liste filtrée pour "Allo-3"
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 4.2: Forward navigateur
**Étapes**:
1. Faire le test 4.1 jusqu'à cliquer "Retour"
2. Cliquer le bouton "Avancer" du navigateur
**Attendu**:
- [ ] L'URL revient à `?folder=Allo-3&note=...`
- [ ] La note s'ouvre
- [ ] Pas de rechargement de page
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 4.3: Rechargement page
**Étapes**:
1. Aller à `http://localhost:3000/?folder=Allo-3&note=Allo-3/test.md`
2. Appuyer F5 (rechargement)
**Attendu**:
- [ ] Page se recharge
- [ ] L'URL reste `?folder=Allo-3&note=Allo-3/test.md`
- [ ] Après rechargement: dossier "Allo-3" sélectionné
- [ ] Après rechargement: note "test.md" ouverte
- [ ] Pas d'écran bleu ou vide
**Résultat**: ✅ / ❌
**Notes**:
---
### Phase 5: Tests de cas limites
#### Test 5.1: Note inexistante
**URL**: `http://localhost:3000/?note=NonExistent/file.md`
**Attendu**:
- [ ] Pas d'erreur dans la console
- [ ] Aucune note n'est sélectionnée
- [ ] L'URL reste `?note=NonExistent/file.md`
- [ ] Message "Aucune note sélectionnée" s'affiche
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 5.2: Tag inexistant
**URL**: `http://localhost:3000/?tag=NonExistentTag`
**Attendu**:
- [ ] Pas d'erreur dans la console
- [ ] Vue "Recherche" s'ouvre
- [ ] Aucune note n'est affichée
- [ ] Message "Aucun résultat" ou liste vide
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 5.3: Dossier inexistant
**URL**: `http://localhost:3000/?folder=NonExistentFolder`
**Attendu**:
- [ ] Pas d'erreur dans la console
- [ ] Liste vide ou message d'erreur
- [ ] L'URL reste `?folder=NonExistentFolder`
**Résultat**: ✅ / ❌
**Notes**:
---
#### Test 5.4: Paramètres vides
**URL**: `http://localhost:3000/?note=&folder=&tag=`
**Attendu**:
- [ ] Pas d'erreur dans la console
- [ ] Comportement par défaut (première note sélectionnée)
- [ ] Pas de filtre appliqué
**Résultat**: ✅ / ❌
**Notes**:
---
## 📊 Résumé des résultats
| Phase | Tests | Réussis | Échoués | Notes |
|-------|-------|---------|---------|-------|
| 1 | 5 | | | |
| 2 | 3 | | | |
| 3 | 5 | | | |
| 4 | 3 | | | |
| 5 | 4 | | | |
| **TOTAL** | **20** | | | |
## 🐛 Bugs trouvés
### Bug 1
**Description**:
**URL de reproduction**:
**Étapes**:
**Résultat attendu**:
**Résultat réel**:
**Sévérité**: 🔴 Critique / 🟠 Majeur / 🟡 Mineur
---
### Bug 2
**Description**:
**URL de reproduction**:
**Étapes**:
**Résultat attendu**:
**Résultat réel**:
**Sévérité**: 🔴 Critique / 🟠 Majeur / 🟡 Mineur
---
## ✅ Conclusion
**Date de test**:
**Testeur**:
**Statut global**: ✅ RÉUSSI / ⚠️ PARTIEL / ❌ ÉCHOUÉ
**Commentaires**:
---
## 📝 Notes supplémentaires