Guide de test - Onboarding intégré
✅ Intégration terminée !
L'onboarding a été intégré dans le flow d'authentification. Voici comment tester.
🧪 Tests à effectuer
Test 1 : Nouveau compte (Onboarding requis)
Objectif : Vérifier que l'onboarding s'affiche pour un nouveau compte
Étapes :
- Déconnectez-vous de l'app si connecté
- Créez un nouveau compte (nouveau email)
- Une fois inscrit et email confirmé (si nécessaire)
- L'app devrait automatiquement afficher l'onboarding
Résultat attendu :
- ✅ L'onboarding s'affiche automatiquement
- ✅ Welcome screen avec présentation de l'app
- ✅ Écran de sélection du métier (16 options)
- ✅ Écran du nom du business (optionnel)
- ✅ Après "Terminer", redirection vers la page principale
Test 2 : Utilisateur existant (Onboarding déjà complété)
Objectif : Vérifier que l'onboarding ne s'affiche pas si déjà complété
Prérequis : Avoir complété l'onboarding au Test 1
Étapes :
- Déconnectez-vous
- Reconnectez-vous avec le même compte
- L'app devrait rediriger directement vers la page principale
Résultat attendu :
- ✅ Pas d'onboarding affiché
- ✅ Redirection directe vers MainPage
- ✅ Dans Paramètres → "Type d'activité", le métier s'affiche
Test 3 : Flow complet
Objectif : Tester tout le parcours onboarding
Étapes :
- Créer un nouveau compte
- Welcome Screen :
- Vérifier les 3 features affichées
- Cliquer sur "Continuer"
- Business Type :
- Vérifier que les 16 métiers s'affichent
- Essayer de continuer sans sélectionner → Bouton désactivé ✅
- Sélectionner "Pâtisserie"
- Vérifier la bordure bleue et le checkmark
- Cliquer sur "Continuer"
- Business Name :
- Laisser vide (optionnel)
- OU remplir avec "Pâtisserie Sophie"
- Cliquer sur "Terminer"
- Vérifier la redirection vers MainPage
- Aller dans Paramètres → Profil → "Type d'activité"
- Vérifier que "🎂 Pâtisserie" s'affiche
Résultat attendu :
- ✅ Tout le flow fonctionne
- ✅ Pas d'erreurs dans les logs
- ✅ Les données sont sauvegardées en BDD
Test 4 : Vérification en base de données
Objectif : Vérifier que les données sont bien enregistrées
Étapes :
- Aller sur Supabase Dashboard
- Database → Table Editor → user_profiles
- Chercher votre profil (par email)
- Vérifier les colonnes :
business_type= 'patisserie' (ou autre)business_name= 'Pâtisserie Sophie' (ou NULL si pas rempli)has_completed_onboarding= true
Résultat attendu :
| email | business_type | business_name | has_completed_onboarding |
|-------|--------------|---------------|--------------------------|
| test@example.com | patisserie | Pâtisserie Sophie | true |
🐛 Troubleshooting
L'onboarding ne s'affiche pas pour un nouveau compte
Causes possibles :
-
Les colonnes n'existent pas dans
user_profiles- Solution : Exécuter le SQL de migration (voir ONBOARDING_DATABASE.md)
-
Le profil utilisateur n'est pas créé
- Solution : Vérifier que le profil est créé à l'inscription
-
has_completed_onboardingest déjà àtrue- Solution : Vérifier en BDD et mettre à
falsepour tester
- Solution : Vérifier en BDD et mettre à
Commande SQL de test :
UPDATE user_profiles
SET has_completed_onboarding = false
WHERE email = 'votre-email@test.com';
L'onboarding s'affiche en boucle
Cause : has_completed_onboarding ne passe pas à true
Solution :
- Vérifier les logs de l'app lors du clic sur "Terminer"
- Vérifier les RLS policies sur
user_profiles - Vérifier que l'utilisateur a les permissions UPDATE
Test manuel :
-- Tester la mise à jour manuellement
UPDATE user_profiles
SET has_completed_onboarding = true
WHERE email = 'votre-email@test.com';
Erreur "Constraint violation" lors de la sauvegarde
Cause : Le business_type ne correspond pas aux valeurs autorisées
Solution :
-- Vérifier la contrainte
SELECT pg_get_constraintdef(oid)
FROM pg_constraint
WHERE conname = 'check_business_type';
-- Si nécessaire, recréer la contrainte
ALTER TABLE user_profiles DROP CONSTRAINT check_business_type;
-- Puis exécuter le SQL complet dans ONBOARDING_DATABASE.md
Les données ne s'affichent pas dans les paramètres
Cause : Le profil n'est pas rechargé
Solution :
- Forcer le rechargement du profil dans
settings_page.dart - Ou se déconnecter/reconnecter
📱 Tests manuels recommandés
Test avec différents métiers
Tester avec plusieurs types de métiers pour vérifier que tout fonctionne :
- Pâtisserie : Vérifier "Réservation" dans l'app
- Coiffure : Vérifier "Rendez-vous" dans l'app
- Photographe : Vérifier "Séance" dans l'app
- Autre : Type générique
Test sur différents devices
- Test sur Android
- Test sur iOS
- Test sur émulateur
- Test sur device physique
Test de navigation
- Back button pendant l'onboarding (ne devrait pas sortir)
- Après onboarding, vérifier qu'on ne peut pas revenir en arrière
- Se déconnecter puis reconnecter
📊 Métriques à surveiller
Si vous avez des analytics :
- Taux de complétion de l'onboarding
- Temps moyen pour compléter
- Métier le plus sélectionné
- Taux d'abandon par étape
✅ Checklist finale
Avant de passer en production :
- Migration SQL exécutée sur Supabase
- Vérification des colonnes en BDD
- Test avec nouveau compte
- Test avec compte existant
- Vérification des données en BDD
- Test de navigation
- Test sur Android
- Test sur iOS
- Pas d'erreurs dans les logs
- Le type de métier s'affiche dans les paramètres
🚀 Aller plus loin
Tests pour les utilisateurs existants
Option A : Forcer l'onboarding
UPDATE user_profiles
SET has_completed_onboarding = false
WHERE created_at < NOW() - INTERVAL '1 day';
Option B : Marquer comme complété avec type par défaut
UPDATE user_profiles
SET
has_completed_onboarding = true,
business_type = 'autre'
WHERE created_at < NOW() - INTERVAL '1 day'
AND has_completed_onboarding IS NULL;
Ajouter des analytics
Dans onboarding_flow_page.dart, ajouter :
// Au début de l'onboarding
Analytics.logEvent('onboarding_started');
// À chaque étape
Analytics.logEvent('onboarding_step', parameters: {'step': _currentPage});
// À la fin
Analytics.logEvent('onboarding_completed', parameters: {
'business_type': _selectedBusinessType!.value,
'has_business_name': _businessNameController.text.isNotEmpty,
});
📞 Support
En cas de problème :
- Vérifier les logs de l'app
- Vérifier les logs Supabase (Database → Logs)
- Consulter
ONBOARDING_DATABASE.mdetREADME.md - Contacter l'équipe de développement
Bon test ! 🎉