docs: ajout documentation de référence
This commit is contained in:
parent
1cb432401d
commit
b06970c9ae
8 changed files with 2954 additions and 46 deletions
178
docs/GOLDEN_DATASET.md
Normal file
178
docs/GOLDEN_DATASET.md
Normal file
|
|
@ -0,0 +1,178 @@
|
|||
# GOLDEN_DATASET.md — Expria / Coach TCF Canada
|
||||
|
||||
> **Document de référence — Version 1.0**
|
||||
> Ce fichier contient les tests manuels à rejouer après CHAQUE session Claude Code,
|
||||
> avant de passer à la session suivante ou de déployer en production.
|
||||
> Un seul test en rouge = la modification est refusée, on revient en arrière.
|
||||
|
||||
---
|
||||
|
||||
## Principe d'utilisation
|
||||
|
||||
1. Avant chaque session Claude Code : sauvegarder le code (commit Git)
|
||||
2. Après chaque session Claude Code : rejouer TOUS les tests du groupe concerné
|
||||
3. Si un test échoue : ne pas continuer, identifier la régression, corriger d'abord
|
||||
4. En cas de doute : rejouer le dataset complet (section 7)
|
||||
|
||||
**Comptes de test à créer dans Supabase avant de commencer :**
|
||||
|
||||
| Compte | Plan | Usage |
|
||||
|---|---|---|
|
||||
| test.free@expria.local | free | Tester les parcours Free |
|
||||
| test.standard@expria.local | standard | Tester les parcours Standard |
|
||||
| test.premium@expria.local | premium | Tester les parcours Premium |
|
||||
| test.quota@expria.local | free (5/5 simulations utilisées) | Tester le blocage quota |
|
||||
|
||||
> Ces comptes sont créés via script SQL dans Supabase (ne pas les créer manuellement).
|
||||
> Voir `supabase/seeds/test_accounts.sql`.
|
||||
|
||||
---
|
||||
|
||||
## Groupe 1 — Authentification
|
||||
|
||||
Ces tests vérifient que l'accès à l'application fonctionne correctement.
|
||||
|
||||
| # | Test | Compte | Résultat attendu | ✅ / ❌ |
|
||||
|---|---|---|---|---|
|
||||
| A1 | Inscription avec email valide | Nouveau compte | Compte créé, plan = "free", redirection dashboard | |
|
||||
| A2 | Connexion avec email + mot de passe valides | test.free | Dashboard Free affiché, compteur simulations visible | |
|
||||
| A3 | Connexion avec mot de passe incorrect | test.free | Message d'erreur, pas de redirection | |
|
||||
| A4 | Déconnexion | test.free | Redirection page d'accueil, session détruite | |
|
||||
| A5 | Accès direct à /dashboard sans être connecté | — | Redirection vers /login | |
|
||||
|
||||
---
|
||||
|
||||
## Groupe 2 — Plan Free (Découverte)
|
||||
|
||||
Ces tests vérifient le parcours complet d'un utilisateur Free.
|
||||
|
||||
| # | Test | Compte | Résultat attendu | ✅ / ❌ |
|
||||
|---|---|---|---|---|
|
||||
| B1 | Dashboard Free affiché après connexion | test.free | Compteur "X/5 simulations", aperçu flouté du dashboard Premium visible | |
|
||||
| B2 | Lancer une simulation EE Tâche 1 | test.free (quota < 5) | Interface de production affichée, pas de tips | |
|
||||
| B3 | Soumettre une production EE | test.free (quota < 5) | Rapport affiché : score + NCLC visibles, critères floutés avec cadenas | |
|
||||
| B4 | Vérifier le rapport flouté | test.free | Au moins 1 élément flouté avec mention "Disponible en Standard" | |
|
||||
| B5 | Lancer une simulation EO Tâche 1 | test.free (quota < 5) | Interface d'enregistrement audio affichée | |
|
||||
| B6 | Cliquer sur EO Tâche 2 live | test.free | Cadenas affiché + message "Exclusivité Premium" | |
|
||||
| B7 | Tenter une 6e simulation | test.quota | Modal de blocage avec boutons "Standard" et "Premium" | |
|
||||
| B8 | Cliquer "Plus tard" dans le modal de blocage | test.quota | Modal fermé, pas de redirection | |
|
||||
| B9 | Cliquer "Mode Examen" | test.free | Cadenas + message "Exclusivité Premium" | |
|
||||
|
||||
---
|
||||
|
||||
## Groupe 3 — Plan Standard
|
||||
|
||||
Ces tests vérifient le parcours complet d'un utilisateur Standard.
|
||||
|
||||
| # | Test | Compte | Résultat attendu | ✅ / ❌ |
|
||||
|---|---|---|---|---|
|
||||
| C1 | Dashboard Standard après connexion | test.standard | Historique visible, bouton "Choisir une tâche" actif, mode examen verrouillé | |
|
||||
| C2 | Lancer une simulation EE sans limite | test.standard | Simulation accessible sans vérification de quota | |
|
||||
| C3 | Toggle "Suggestions d'idées" activé | test.standard | Suggestions d'idées visibles pendant la simulation | |
|
||||
| C4 | Toggle "Mode focus" activé | test.standard | Tips masqués pendant la simulation | |
|
||||
| C5 | Soumettre une production EE | test.standard | Rapport complet : score, critères, erreurs, modèle, exercices — rien flouté | |
|
||||
| C6 | Vérifier l'enregistrement dans le dashboard | test.standard | Production apparaît dans l'historique avec date, tâche, score | |
|
||||
| C7 | Cliquer sur une production dans l'historique | test.standard | Rapport complet de cette production affiché | |
|
||||
| C8 | Cliquer sur "Mode Examen" | test.standard | Message "Réservé au plan Premium" + bouton upgrade | |
|
||||
| C9 | Cliquer sur "EO Tâche 2 live" | test.standard | Cadenas + message "Exclusivité Premium" | |
|
||||
| C10 | Indice de préparation après 5 productions | test.standard (5 prod.) | Section indice visible avec score et message interprétatif | |
|
||||
|
||||
---
|
||||
|
||||
## Groupe 4 — Plan Premium
|
||||
|
||||
Ces tests vérifient le parcours complet d'un utilisateur Premium.
|
||||
|
||||
| # | Test | Compte | Résultat attendu | ✅ / ❌ |
|
||||
|---|---|---|---|---|
|
||||
| D1 | Dashboard Premium après connexion | test.premium | Historique, indice, bouton "Lancer un examen" actif, T2 live accessible | |
|
||||
| D2 | Accéder à EO Tâche 2 live | test.premium | Page de préparation T2 affichée, bouton "Démarrer le dialogue" | |
|
||||
| D3 | Démarrer le dialogue T2 | test.premium | L'IA prend la parole en premier, audio reçu et joué | |
|
||||
| D4 | Répondre en audio (T2) | test.premium | L'IA réagit après la réponse du candidat | |
|
||||
| D5 | Fin de dialogue T2 | test.premium | Rapport complet affiché, production enregistrée avec tag "T2 Live" | |
|
||||
| D6 | Lancer mode Examen EE | test.premium | Page d'avertissement affichée avant démarrage | |
|
||||
| D7 | Confirmer le lancement Examen EE | test.premium | 3 tâches visibles, timer 60:00 démarré, inarrêtable | |
|
||||
| D8 | Vérifier le blocage à T=0 (Examen EE) | test.premium | Zone de texte figée, message "Temps écoulé", envoi automatique | |
|
||||
| D9 | Lancer mode Examen EO | test.premium | Timer 12:00 démarré, enregistrement actif | |
|
||||
| D10 | Analyse des patterns (5+ productions) | test.premium | Section "Mon profil" affiche erreurs récurrentes classées par type | |
|
||||
| D11 | Exercices long terme générés | test.premium | Exercices distincts de ceux du rapport individuel | |
|
||||
|
||||
---
|
||||
|
||||
## Groupe 5 — Paiements et changements de plan
|
||||
|
||||
Ces tests vérifient que le système de paiement fonctionne sans régression.
|
||||
|
||||
> ⚠️ Ces tests utilisent les cartes de test Stripe.
|
||||
> Carte valide : `4242 4242 4242 4242` — expiry : n'importe quelle date future — CVC : n'importe lequel.
|
||||
> Carte refusée : `4000 0000 0000 0002`
|
||||
|
||||
| # | Test | Compte | Résultat attendu | ✅ / ❌ |
|
||||
|---|---|---|---|---|
|
||||
| E1 | Upgrade Free → Standard | test.free | Redirection Stripe, paiement, retour dashboard Standard, plan = "standard" | |
|
||||
| E2 | Upgrade Free → Premium | test.free | Redirection Stripe, paiement, retour dashboard Premium, plan = "premium" | |
|
||||
| E3 | Upgrade Standard → Premium (prorata) | test.standard | Montant prorata affiché avant confirmation, accès Premium après paiement | |
|
||||
| E4 | Paiement refusé | test.free | Message d'erreur Stripe, plan inchangé, pas de régression | |
|
||||
| E5 | Accès immédiat après paiement | test.free | Dashboard du nouveau plan affiché sans délai ni reconnexion | |
|
||||
| E6 | Plan mis à jour dans Supabase | test.free | Colonne `plan` dans la table `profiles` reflète le nouveau plan | |
|
||||
|
||||
---
|
||||
|
||||
## Groupe 6 — Sécurité et permissions
|
||||
|
||||
Ces tests vérifient qu'un utilisateur ne peut pas accéder à ce qu'il ne devrait pas.
|
||||
|
||||
| # | Test | Compte | Résultat attendu | ✅ / ❌ |
|
||||
|---|---|---|---|---|
|
||||
| F1 | Accès direct URL /t2-live sans être Premium | test.standard | Redirection ou message "Accès réservé au Premium" | |
|
||||
| F2 | Appel API POST /corrections/ee sans JWT | — (non connecté) | Réponse 401 Unauthorized | |
|
||||
| F3 | Appel API GET /simulations d'un autre utilisateur | test.free | Réponse 403 ou liste vide (RLS Supabase) | |
|
||||
| F4 | Tentative de lancer examen via API (plan standard) | test.standard | Réponse 403 — plan insuffisant | |
|
||||
| F5 | Variable GEMINI_API_KEY visible dans le frontend | — | Introuvable dans le code source JavaScript chargé par le navigateur | |
|
||||
|
||||
---
|
||||
|
||||
## Groupe 7 — Dataset complet (smoke test)
|
||||
|
||||
À rejouer avant chaque déploiement en production.
|
||||
Ce sont les 10 scénarios les plus critiques, un par type de parcours.
|
||||
|
||||
| # | Test | Description rapide |
|
||||
|---|---|---|
|
||||
| Z1 | Inscription + simulation Free | Nouvel utilisateur → simulation → rapport flouté |
|
||||
| Z2 | Blocage quota Free | 6e simulation → modal de blocage |
|
||||
| Z3 | Simulation Standard complète | Login → simulation → rapport complet → dashboard |
|
||||
| Z4 | Mode examen bloqué en Standard | Bouton mode examen → message upgrade |
|
||||
| Z5 | T2 live Premium | Login → T2 live → dialogue → rapport |
|
||||
| Z6 | Mode examen EE complet | Lancement → timer → T=0 → envoi auto → rapport |
|
||||
| Z7 | Paiement Free → Standard | Checkout Stripe → webhook → dashboard Standard |
|
||||
| Z8 | Prorata Standard → Premium | Montant affiché → confirmation → accès Premium |
|
||||
| Z9 | Sécurité JWT | Appel API sans token → 401 |
|
||||
| Z10 | Déconnexion + accès protégé | Déconnexion → accès /dashboard → redirection /login |
|
||||
|
||||
---
|
||||
|
||||
## Procédure en cas d'échec
|
||||
|
||||
```
|
||||
Test échoue
|
||||
↓
|
||||
1. Noter le numéro du test et le comportement observé
|
||||
2. NE PAS continuer la session Claude Code
|
||||
3. Identifier le fichier modifié qui a causé la régression
|
||||
4. Revenir au commit Git précédent (git revert ou git checkout)
|
||||
5. Analyser la cause avec Claude (chat, pas code)
|
||||
6. Reformuler le prompt en ajoutant la contrainte manquante
|
||||
7. Relancer la session Claude Code
|
||||
8. Rejouer le groupe de tests concerné
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Historique des sessions
|
||||
|
||||
> Remplir après chaque session Claude Code.
|
||||
|
||||
| Date | Session | Tests rejoués | Résultat | Notes |
|
||||
|---|---|---|---|---|
|
||||
| — | — | — | — | — |
|
||||
Loading…
Add table
Add a link
Reference in a new issue