ObsiViewer/QUICK_TEST_GUIDE.md

322 lines
7.0 KiB
Markdown

# 🧪 Guide de Test Rapide - Système de Théming
## Démarrage rapide
```bash
# 1. Installer les dépendances (si nécessaire)
npm install
# 2. Lancer l'application en mode dev
npm run dev
# 3. Ouvrir dans le navigateur
# http://localhost:4200
```
## Test manuel des thèmes
### Accéder aux paramètres
1. Ouvrir l'application
2. Naviguer vers **Parameters** / **Paramètres**
3. Section **Apparence** / **Appearance**
### Tester les modes
**Mode System** :
- Sélectionner "System"
- Changer le mode de votre OS (light/dark)
- L'application doit suivre automatiquement
**Mode Light** :
- Sélectionner "Light"
- Toute l'interface doit être en mode clair
**Mode Dark** :
- Sélectionner "Dark"
- Toute l'interface doit être en mode sombre
### Tester les thèmes
Pour chaque thème, vérifier en mode Light ET Dark (si applicable) :
#### 1. **Light** (thème par défaut clair)
- Mode : Light uniquement
- Palette : Blanc, gris, bleus
#### 2. **Dark** (thème par défaut sombre)
- Mode : Dark uniquement
- Palette : Bleu-gris foncé, texte clair
#### 3. **Obsidian**
- Mode Light : Beige chaud, texte anthracite
- Mode Dark : Gris très foncé, accents beiges
#### 4. **Nord**
- Mode Light : Blanc neigeux, palette nordique pastel
- Mode Dark : Bleu-gris arctique, palette nordique
#### 5. **Notion**
- Mode Light : Blanc pur, minimaliste
- Mode Dark : Noir profond, contraste élevé
#### 6. **GitHub**
- Mode Light : Style GitHub classique
- Mode Dark : GitHub Dimmed Dark
#### 7. **Discord**
- Mode Light : Gris très clair, violet Discord
- Mode Dark : Gris Discord, violet Discord
#### 8. **Monokai**
- Mode Light : Crème, accents atténués
- Mode Dark : Vert-gris foncé, palette Monokai
## Checklist de vérification
Pour chaque combinaison thème/mode, vérifier :
### 🏠 Page d'accueil / Liste
- [ ] **Sidebar gauche**
- Fond cohérent
- Items hover visibles
- Item actif distinct
- Badges de compteurs lisibles
- Séparateurs visibles
- [ ] **Topbar**
- Fond cohérent
- Barre de recherche lisible
- Placeholder visible
- Focus ring visible
- Icônes visibles
- [ ] **Liste des notes**
- Items lisibles
- Hover distinct
- Selected visible
- Path muted lisible
- Séparateurs visibles
### 📄 Page de détail
- [ ] **Contenu markdown**
- Titres (H1-H6) lisibles
- Paragraphes lisibles
- Liens visibles et hover
- Listes (ul, ol) lisibles
- Blockquotes distincts
- Code inline lisible
- Code blocks (fences) lisibles
- Tables lisibles (headers, zebra)
- HR visibles
- [ ] **Panneaux latéraux**
- TOC lisible
- Propriétés lisibles
- Tags lisibles et hover
### ✏️ Mode édition
- [ ] **Éditeur**
- Fond CodeMirror cohérent
- Texte lisible
- Sélection visible
- Gutters lisibles
- Cursor visible
- Coloration syntaxique cohérente
- [ ] **Toolbar**
- Boutons lisibles
- Hover visible
- Active visible
### 🎨 Composants UI
- [ ] **Modales**
- Fond cohérent
- Overlay visible
- Bordures visibles
- Boutons lisibles
- [ ] **Menus contextuels**
- Fond cohérent
- Items hover visibles
- Séparateurs visibles
- [ ] **Toasts**
- Fond cohérent
- Texte lisible
- Bordure visible
- Barre de progression visible
- [ ] **Chips/Tags**
- Fond cohérent
- Texte lisible
- Hover visible
- Selected distinct
- [ ] **Inputs**
- Fond cohérent
- Texte lisible
- Placeholder visible
- Focus ring visible
- Border visible
- [ ] **Buttons**
- Fond cohérent
- Texte lisible
- Hover visible
- Active visible
- Disabled visible
### 📱 Mobile
- [ ] **Bottom navigation**
- Fond cohérent
- Icônes visibles
- Active visible
- [ ] **Drawers/Sheets**
- Fond cohérent
- Overlay visible
### 🎯 Graphes (si applicable)
- [ ] **Graph view**
- Nœuds visibles
- Liens visibles
- Labels lisibles
- Légende lisible
## Tests de contraste
### Outils recommandés
1. **Chrome DevTools**
- F12 → Lighthouse → Accessibility
- Vérifier les contrastes automatiquement
2. **WebAIM Contrast Checker**
- https://webaim.org/resources/contrastchecker/
- Tester manuellement les combinaisons critiques
### Combinaisons à tester
Pour chaque thème :
- [ ] Texte principal / Fond principal (ratio ≥ 4.5:1)
- [ ] Texte muted / Fond principal (ratio ≥ 4.5:1)
- [ ] Liens / Fond principal (ratio ≥ 4.5:1)
- [ ] Boutons / Fond bouton (ratio ≥ 4.5:1)
## Tests de persistance
1. **Sélectionner un thème** (ex: Obsidian Dark)
2. **Recharger la page** (F5)
- ✅ Le thème doit être conservé
- ✅ Pas de flash de contenu (anti-FOUC)
3. **Fermer et rouvrir le navigateur**
- ✅ Le thème doit être conservé
4. **Tester en navigation privée**
- ✅ Thème par défaut (Light)
- ✅ Changement de thème fonctionne
- ⚠️ Non persisté après fermeture (comportement attendu)
## Tests de réactivité
1. **Ouvrir la page Parameters**
2. **Changer le mode** (Light → Dark)
- ✅ Changement immédiat sur toute la page
- ✅ Pas de rechargement nécessaire
3. **Changer le thème** (Obsidian → Nord)
- ✅ Changement immédiat sur toute la page
- ✅ Pas de rechargement nécessaire
4. **Ouvrir plusieurs onglets**
- ✅ Changement dans un onglet se reflète dans les autres (après focus)
## Debugging
### Vérifier le thème actif
Ouvrir la console (F12) et taper :
```javascript
// Vérifier la classe dark
document.documentElement.classList.contains('dark')
// Vérifier le thème
document.documentElement.getAttribute('data-theme')
// Vérifier les préférences stockées
JSON.parse(localStorage.getItem('obsiviewer.preferences.v1'))
```
### Forcer un thème manuellement
```javascript
// Forcer dark mode
document.documentElement.classList.add('dark')
// Forcer un thème
document.documentElement.setAttribute('data-theme', 'nord')
// Recharger pour restaurer les préférences
location.reload()
```
### Inspecter les tokens CSS
```javascript
// Obtenir la valeur d'un token
getComputedStyle(document.documentElement).getPropertyValue('--bg-main')
// Lister tous les tokens
Array.from(document.styleSheets)
.flatMap(sheet => Array.from(sheet.cssRules))
.filter(rule => rule.style?.getPropertyValue('--bg'))
```
## Rapport de bugs
Si vous trouvez un problème :
1. **Capturer** :
- Screenshot du problème
- Thème actif (nom + mode)
- Navigateur + version
- Résolution d'écran
2. **Reproduire** :
- Étapes pour reproduire
- Comportement attendu
- Comportement observé
3. **Vérifier** :
- Console (erreurs JS ?)
- Network (ressources manquantes ?)
- Computed styles (tokens appliqués ?)
## Checklist finale
Avant de valider le système de théming :
- [ ] Les 14 combinaisons sont testées
- [ ] Tous les composants UI sont cohérents
- [ ] Les contrastes respectent WCAG AA
- [ ] La persistance fonctionne
- [ ] Pas de flash au chargement (anti-FOUC)
- [ ] Les transitions sont fluides
- [ ] Le mode System fonctionne
- [ ] Mobile est testé
- [ ] Aucune couleur hardcodée visible
- [ ] Documentation à jour
---
**Bon test ! 🎨**