🧪 Procédure de Test - Vérification d'Email
📋 Vue d'ensemble
Cette procédure teste l'implémentation de la vérification d'email étape par étape.
🚀 Préparation
1. Compiler et lancer l'application
cd /home/julien/Sources/yinshi
flutter pub get
flutter run -d chrome
2. Ouvrir la console de debug
- Appuyez sur
ddans le terminal pour ouvrir DevTools - Allez dans l'onglet "Console" pour voir les logs
3. Préparer les adresses email
- Email 1 (test) :
test.yinshi@gmail.com(Gmail - reçoit les emails) - Email 2 (test) :
test.yinshi.free@free.fr(Free.fr - peut bloquer) - Email 3 (OAuth) : Votre compte Google personnel
✅ ÉTAPE 1 : Envoi automatique d'email (Étape 2)
Objectif
Vérifier que l'email de vérification est bien envoyé après l'inscription.
Procédure
-
Lancer l'app et cliquer sur "Créer un compte"
-
S'inscrire avec Gmail
- Email :
test.yinshi@gmail.com - Mot de passe :
Test123!@# -
Confirmer le mot de passe
-
Vérifier les logs
-
Dans la console, chercher les logs :
=== DEBUG VÉRIFICATION EMAIL === Email: test.yinshi@gmail.com Email verified: false Is email/password provider: true Has only one provider: true Tentative d'envoi d'email de vérification... ✅ Email de vérification envoyé avec succès à test.yinshi@gmail.com === FIN DEBUG === -
Vérifier la réception de l'email
- Ouvrir Gmail : https://mail.google.com
- Chercher un email de
noreply@yin-shi-1967c.firebaseapp.com - Sujet : "Validation de l'adresse e-mail pour Yinshi"
✅ Validation
- [ ] Les logs montrent "✅ Email de vérification envoyé"
- [ ] L'email est reçu dans Gmail (pas dans les spams)
- [ ] L'email contient un lien de vérification
Résultat : - ✅ SUCCÈS → Passer à l'ÉTAPE 2 - ❌ ÉCHEC → Vérifier les logs et les spams
✅ ÉTAPE 2 : Redirection vers VerifyEmailScreen (Étape 3)
Objectif
Vérifier que l'utilisateur est redirigé vers l'écran de vérification d'email.
Procédure
- Après l'inscription (ÉTAPE 1)
- L'app devrait afficher l'écran
VerifyEmailScreen -
Vérifier que vous voyez :
- Icône "Vérifiez votre boîte mail"
- Message avec votre email
- Bouton "Renvoyer l'email"
- Lien "Se connecter avec un autre compte"
- Message d'info "Cette page se rafraîchit automatiquement"
-
Vérifier l'interface
- [ ] L'écran s'affiche correctement
- [ ] Le message affiche votre email
- [ ] Les boutons sont visibles et cliquables
✅ Validation
- [ ] Vous êtes sur l'écran de vérification
- [ ] L'interface s'affiche correctement
- [ ] Les éléments sont visibles
Résultat :
- ✅ SUCCÈS → Passer à l'ÉTAPE 3
- ❌ ÉCHEC → Vérifier que AuthWrapper est bien intégré dans main.dart
✅ ÉTAPE 3 : Vérification automatique et redirection (Étape 3)
Objectif
Vérifier que l'app détecte automatiquement la vérification d'email et redirige vers MainNavigation.
Procédure
- Depuis l'écran de vérification
- Ouvrir l'email reçu dans Gmail
- Cliquer sur le lien "https://yin-shi-1967c.firebaseapp.com/__/auth/action?..."
- Vous serez redirigé vers une page Firebase
-
Cliquer sur "Retourner à l'application" ou fermer cette page
-
Revenir à l'app Flutter
- L'app devrait détecter la vérification automatiquement
- Un dialog devrait apparaître : "Email vérifié !"
-
Cliquer sur "Continuer"
-
Vérifier la redirection
- Vous devriez être redirigé vers
MainNavigation(écran d'accueil) - L'écran d'accueil devrait afficher normalement
✅ Validation
- [ ] Le lien de vérification fonctionne
- [ ] Le dialog "Email vérifié !" apparaît
- [ ] Vous êtes redirigé vers MainNavigation
- [ ] L'app fonctionne normalement après
Résultat : - ✅ SUCCÈS → Passer à l'ÉTAPE 4 - ❌ ÉCHEC → Vérifier les logs pour les erreurs
✅ ÉTAPE 4 : Bouton "Renvoyer l'email" (Étape 3)
Objectif
Vérifier que le bouton "Renvoyer l'email" fonctionne correctement.
Procédure
- S'inscrire à nouveau avec un nouvel email
- Email :
test.yinshi2@gmail.com - Mot de passe :
Test123!@# -
Vous êtes redirigé vers
VerifyEmailScreen -
Cliquer sur "Renvoyer l'email"
- Vérifier les logs : "✅ Email de vérification renvoyé"
-
Un message vert devrait apparaître : "Email renvoyé avec succès !"
-
Vérifier la réception
- Ouvrir Gmail
- Chercher un nouvel email de vérification
-
Vérifier que c'est un nouvel email (timestamp différent)
-
Tester la limite de 3 tentatives
- Cliquer sur "Renvoyer l'email" 2 fois de plus
- À la 4ème tentative, le bouton devrait être désactivé
- Message : "Nombre maximum de tentatives atteint"
✅ Validation
- [ ] Le bouton "Renvoyer l'email" fonctionne
- [ ] Un nouvel email est reçu
- [ ] Le compteur affiche "Tentatives: X/3"
- [ ] Le bouton est désactivé après 3 tentatives
- [ ] Un message d'erreur s'affiche
Résultat : - ✅ SUCCÈS → Passer à l'ÉTAPE 5 - ❌ ÉCHEC → Vérifier les logs et la limite de tentatives
✅ ÉTAPE 5 : OAuth (Google/Apple) - Pas de vérification (Étape 4)
Objectif
Vérifier que les utilisateurs OAuth accèdent directement à l'app sans vérification.
Procédure
- Déconnexion
- Cliquer sur "Se connecter avec un autre compte"
-
Vous êtes redirigé vers l'écran d'authentification
-
Se connecter avec Google
- Cliquer sur "Continuer avec Google"
- Utiliser votre compte Google personnel
- Vous devriez être redirigé directement vers
MainNavigation -
PAS d'écran de vérification d'email
-
Vérifier les logs
- Chercher les logs pour voir que c'est un provider Google
- Pas de message "Tentative d'envoi d'email de vérification"
✅ Validation
- [ ] Connexion Google fonctionne
- [ ] Pas d'écran de vérification pour Google
- [ ] Accès direct à MainNavigation
- [ ] Les logs montrent "Google" comme provider
Résultat :
- ✅ SUCCÈS → Passer à l'ÉTAPE 6
- ❌ ÉCHEC → Vérifier la logique OAuth dans AuthWrapper
✅ ÉTAPE 6 : Déconnexion et reconnexion (Étape 4)
Objectif
Vérifier que la déconnexion fonctionne et que la reconnexion respecte les règles.
Procédure
- Depuis MainNavigation (connecté avec Google)
- Cliquer sur l'avatar profil (coin haut droit)
- Cliquer sur "Déconnexion"
-
Vous devriez être redirigé vers l'écran d'authentification
-
Se reconnecter avec email/mot de passe
- Cliquer sur "Créer un compte"
- S'inscrire avec un nouvel email :
test.yinshi3@gmail.com -
Vous devriez être redirigé vers
VerifyEmailScreen -
Vérifier la logique
- [ ] La déconnexion fonctionne
- [ ] Vous êtes redirigé vers l'écran d'authentification
- [ ] La reconnexion respecte les règles (email → vérification, Google → direct)
✅ Validation
- [ ] Déconnexion fonctionne
- [ ] Reconnexion avec email → VerifyEmailScreen
- [ ] Reconnexion avec Google → MainNavigation direct
Résultat : - ✅ SUCCÈS → Tous les tests sont PASSÉS ! 🎉 - ❌ ÉCHEC → Vérifier les logs et la logique d'authentification
📊 Résumé des Tests
| Étape | Test | Statut |
|---|---|---|
| 1 | Envoi automatique d'email | [ ] |
| 2 | Redirection vers VerifyEmailScreen | [ ] |
| 3 | Vérification automatique et redirection | [ ] |
| 4 | Bouton "Renvoyer l'email" | [ ] |
| 5 | OAuth (Google) - Pas de vérification | [ ] |
| 6 | Déconnexion et reconnexion | [ ] |
🐛 Troubleshooting
L'email n'est pas reçu
- Vérifier les spams/indésirables
- Vérifier que l'adresse email est correcte
- Vérifier les logs pour les erreurs d'envoi
- Essayer avec une adresse Gmail
L'écran de vérification ne s'affiche pas
- Vérifier que
AuthWrapperest bien dansmain.dart - Vérifier les logs pour les erreurs de redirection
- Vérifier que
VerifyEmailScreenest bien importé
La vérification automatique ne fonctionne pas
- Vérifier que le Timer est bien lancé (logs)
- Vérifier que
checkEmailVerified()est appelé - Vérifier les logs pour les erreurs
Le bouton "Renvoyer l'email" ne fonctionne pas
- Vérifier les logs pour les erreurs
- Vérifier que
resendVerificationEmail()est bien implémenté - Vérifier la limite de tentatives
📝 Notes
- Utilisez des adresses Gmail pour les tests (Free.fr peut bloquer)
- Vérifiez toujours les logs dans la console
- Attendez quelques secondes entre chaque action
- Nettoyez le cache si vous avez des problèmes :
flutter clean