- Documentation archivée et réorganisée - Backend: Ajout tests, migrations, library service, rate limiting - Frontend: Suppression Flutter, focus sur interface web HTML/JS - Tailwind CSS ajouté pour le style - Améliorations UX et corrections bugs Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
8.7 KiB
AudiOhm - Guide de Test Frontend
Date: 2025-01-19 Application: AudiOhm Web (Flutter) URL: http://localhost:8000
Prérequis
-
Serveur Backend en cours d'exécution:
cd /opt/audiOhm/backend python3 -m uvicorn app.main:app --reload -
Base de données PostgreSQL opérationnelle
-
Navigateur moderne (Chrome, Firefox, Edge, Safari)
-
Outils de développement (DevTools F12)
Test 1: Authentification
1.1 Login
Étapes:
- Aller sur http://localhost:8000
- Cliquer sur "Se connecter"
- Entrer les identifiants:
admin@example.com/admin123 - Cliquer sur "Connexion"
Résultat attendu:
- ✅ Redirection vers la page d'accueil
- ✅ Nom d'utilisateur affiché dans le header
- ✅ Menu "Ma Bibliothèque" accessible
Bug potentiel:
- ❌ Message d'erreur incorrect
- ❌ Pas de redirection après login
Test 2: Queue de Lecture
2.1 Ajouter une piste à la queue
Étapes:
- Rechercher une piste (ex: "queen")
- Cliquer sur le bouton "⋯" (plus) sur une piste
- Sélectionner "Ajouter à la queue"
- Ouvrir la sidebar "Queue" (icône queue)
Résultat attendu:
- ✅ La piste apparaît dans la queue
- ✅ Notification visuelle "Piste ajoutée"
- ✅ Compteur de queue mis à jour
2.2 Contrôles de la queue
À tester:
- ✅ Clic sur une piste de la queue → Lecture
- ✅ Bouton "Suivant" → Piste suivante
- ✅ Bouton "Précédent" → Piste précédente
- ✅ Bouton "Mélanger" → Queue mélangée
- ✅ Bouton "Vider" → Queue vide
2.3 Persistance localStorage
Étapes:
- Ajouter 3-4 pistes à la queue
- Fermer le navigateur (ou refresh F5)
- Réouvrir l'application
Résultat attendu:
- ✅ La queue est toujours présente
- ✅ L'ordre est identique
- ✅ Les pistes sont rejouables
Vérification technique:
// Dans la console DevTools (F12)
localStorage.getItem('audiohm_queue')
// Devrait retourner un JSON avec les pistes
Test 3: Bibliothèque - Titres Likés
3.1 Liké une piste
Étapes:
- Rechercher et lire une piste
- Dans le player, cliquer sur le cœur (♡)
Résultat attendu:
- ✅ Le cœur se remplit (♥)
- ✅ Notification "Ajouté aux titres likés"
- ✅ La piste apparaît dans "Ma Bibliothèque > Titres likés"
Vérification API:
# Vérifier que la piste est likée
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:8000/api/v1/library/liked | jq
3.2 Unliké une piste
Étapes:
- Aller dans "Titres likés"
- Cliquer sur le cœur plein (♥) d'une piste
Résultat attendu:
- ✅ Le cœur se vide (♡)
- ✅ La piste disparaît de la liste
- ✅ Compteur "X titres likés" mis à jour
3.3 Consultation des titres likés
À tester:
- ✅ Page "Titres likés" accessible
- ✅ Liste des pistes affichée
- ✅ Pagination fonctionnelle
- ✅ Clic → Lecture de la piste
- ✅ Ordre chronologique inversé (plus récent en haut)
Test 4: Bibliothèque - Historique
4.1 Consultation de l'historique
Étapes:
- Jouer 3-4 pistes différentes
- Aller dans "Ma Bibliothèque > Historique"
Résultat attendu:
- ✅ Les pistes apparaissent par ordre chronologique
- ✅ Groupement par date (Aujourd'hui, Hier, Cette semaine...)
- ✅ Heure d'écoute affichée
4.2 Relecture depuis l'historique
Étapes:
- Dans l'historique, cliquer sur une piste
Résultat attendu:
- ✅ La piste se lance
- ✅ Elle s'ajoute à la fin de la queue
- ✅ Mise à jour du player
4.3 Vidange de l'historique
À tester:
- ✅ Bouton "Vider l'historique"
- ✅ Confirmation modal
- ✅ Historique vidé après confirmation
Vérification API:
# Vérifier que l'historique est vide
curl -H "Authorization: Bearer $TOKEN" \
http://localhost:8000/api/v1/library/history | jq
# [] = vide
Test 5: Playlists
5.1 Création de playlist
Étapes:
- Cliquer sur "Créer une playlist"
- Entrer nom: "Ma playlist test"
- Entrer description (optionnelle)
- Cliquer sur "Créer"
Résultat attendu:
- ✅ La playlist apparaît dans la sidebar
- ✅ Page de détails ouverte
- ✅ Message "Playlist créée"
5.2 Ajout de pistes
Méthode A - Depuis la recherche:
- Rechercher des pistes
- Clic sur "⋯" > "Ajouter à la playlist"
- Sélectionner "Ma playlist test"
Méthode B - Drag & Drop:
- Rechercher des pistes
- Drag & drop vers la playlist dans la sidebar
Résultat attendu:
- ✅ Pistes ajoutées à la playlist
- ✅ Compteur "X pistes" mis à jour
- ✅ Notification visuelle
5.3 Lecture d'une playlist
Étapes:
- Cliquer sur une playlist
- Cliquer sur "Play" (▶)
Résultat attendu:
- ✅ Toutes les pistes s'ajoutent à la queue
- ✅ La première piste démarre
- ✅ Order de la playlist respecté
5.4 Modification de playlist
À tester:
- ✅ Changement de nom
- ✅ Changement de description
- ✅ Ajout d'image de couverture
- ✅ Playlist privée/publique
5.5 Suppression de playlist
Étapes:
- Cliquer sur "⋯" sur la playlist
- Sélectionner "Supprimer"
- Confirmer
Résultat attendu:
- ✅ Modal de confirmation
- ✅ Playlist supprimée
- ✅ Disparition de la sidebar
Test 6: Player Audio
6.1 Contrôles de base
À tester:
- ✅ Play/Pause (barre espace ou clic)
- ✅ Volume slider
- ✅ Barre de progression cliquable
- ✅ Temps écoulé / durée totale
- ✅ Bouton Repeat (Off/All/One)
- ✅ Bouton Shuffle
6.2 Affichage des métadonnées
Résultat attendu:
- ✅ Titre de la piste
- ✅ Nom de l'artiste
- ✅ Album (si disponible)
- ✅ Image de couverture
6.3 Gestion des erreurs
À tester:
- ❌ Piste indisponible → Message d'erreur
- ❌ Pas de connexion → Message offline
Test 7: Responsive Design
7.1 Desktop (> 1024px)
À vérifier:
- ✅ Sidebar complète visible
- ✅ Player fixe en bas
- ✅ Grille de pistes responsive
7.2 Tablette (768px - 1024px)
À vérifier:
- ✅ Sidebar réduite
- ✅ Menu hamburger fonctionnel
- ✅ Player adapté
7.3 Mobile (< 768px)
À vérifier:
- ✅ Sidebar cachée par défaut
- ✅ Navigation par menu
- ✅ Player full width
- ✅ Gestes tactiles
Test 8: Performance
8.1 Temps de chargement
À mesurer:
- ⏱️ Première page: < 2s
- ⏱️ Recherche: < 1s
- ⏱️ Lecture: < 500ms
8.2 Gestion des grandes listes
À tester:
- ✅ Recherche avec 100+ résultats
- ✅ Playlist avec 50+ pistes
- ✅ Historique avec 100+ entrées
Résultat attendu:
- ✅ Pas de lag
- ✅ Scroll fluide
- ✅ Pagination/virtualization
Test 9: Accessibilité
9.1 Navigation clavier
À tester:
- ✅ Tab pour naviguer
- ✅ Entrée/Space pour valider
- ✅ Escape pour fermer les modals
9.2 Lecteur d'écran
À vérifier:
- ✅ Alt text sur les images
- ✅ ARIA labels sur les boutons
- ✅ Structure sémantique HTML
Test 10: Cas Limites
10.1 Queue vide
Actions:
- ✅ Pas de piste dans la queue
- ✅ Clic sur "Play" → Message approprié
10.2 Piste supprimée
Scénario:
- Ajouter une piste à la queue
- Supprimer la piste de la BD
- Essayer de la jouer
Résultat attendu:
- ✅ Message "Piste indisponible"
- ✅ Passer à la piste suivante
10.3 Déconnexion
Étapes:
- Remplir la queue
- Se déconnecter
- Se reconnecter
Résultat attendu:
- ✅ Queue restaurée (localStorage)
- ✅ Historique intact (BD)
Outils de Test
DevTools Console
// Vider le localStorage
localStorage.clear()
// Vérifier les données
console.log(JSON.parse(localStorage.getItem('audiohm_queue')))
console.log(JSON.parse(localStorage.getItem('audiohm_settings')))
// Simuler un utilisateur différent
localStorage.setItem('audiohm_token', 'new_token')
Réseau (Network Tab)
À surveiller:
- ⏱️ Temps de réponse API
- ❌ Requêtes échouées (rouge)
- ⚠️ Requêtes lentes (jaune)
Checklist Finale
Avant de valider la release:
- Tous les tests backend passent (100%)
- Tous les tests frontend manuels passent
- Bug #1 corrigé (type mismatch)
- Aucune erreur console DevTools
- Performance acceptable (< 2s)
- Responsive OK (mobile/desktop)
- Accessibilité vérifiée
- Documentation à jour
Rapport de Bugs
Template à utiliser:
### Bug #[NUMÉRO]: [TITRE]
**Sévérité:** CRITIQUE/MAJEURE/MINEURE
**Localisation:** [FICHIER/FONCTION]
**Description:**
[Ce qui ne va pas]
**Reproduction:**
1. Étape 1
2. Étape 2
3. ...
**Résultat attendu:**
[Ce qui devrait se passer]
**Résultat actuel:**
[Ce qui se passe réellement]
**Solution proposée:**
[Comment corriger]
Fin du guide de test