- 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
		
			
				
	
	
		
			344 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			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¬e=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¬e=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¬e=...`
 | |
| - [ ] 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¬e=Allo-3/test.md`
 | |
| 2. Appuyer F5 (rechargement)
 | |
| 
 | |
| **Attendu**:
 | |
| - [ ] Page se recharge
 | |
| - [ ] L'URL reste `?folder=Allo-3¬e=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
 | |
| 
 |