Ajout de 47 features Gherkin (~650 scénarios) pour couvrir 100% des règles métier : - Authentification (5) : validation mot de passe, tentatives connexion, multi-device, 2FA, récupération - Audio-guides (12) : détection mode, création, navigation piéton/voiture, ETA, gestion points, progression - Navigation (5) : notifications minimalistes, décompte 5s, stationnement, historique, basculement auto - Création contenu (3) : image auto, restrictions modification, suppression - Radio live (2) : enregistrement auto, interdictions modération - Droits auteur (6) : fair use 30s, détection musique, signalements, sanctions, appels - Modération (9) : badges Bronze/Argent/Or, score fiabilité, utilisateur confiance, audit, anti-abus - Premium (2) : webhooks Mangopay, tarification multi-canal - Profil/Partage/Recherche (5) : badge vérifié, stats arrondies, partage premium, filtres avancés, carte Tous les scénarios incluent edge cases, métriques de performance et conformité RGPD. Couverture fonctionnelle MVP maintenant complète.
76 lines
3.4 KiB
Gherkin
76 lines
3.4 KiB
Gherkin
# language: fr
|
|
|
|
@api @audio-guides @sync @mvp
|
|
Fonctionnalité: Sauvegarde et synchronisation de progression
|
|
|
|
En tant qu'utilisateur
|
|
Je veux que ma progression soit sauvegardée et synchronisée
|
|
Afin d'accéder à mon historique sur tous mes appareils
|
|
|
|
Scénario: Sauvegarde en temps réel dans le cloud
|
|
Étant donné un utilisateur "alice@roadwave.fr" connecté
|
|
Quand elle complète une séquence
|
|
Alors la progression est sauvegardée dans le cloud immédiatement
|
|
Et un indicateur "Synchronisé" s'affiche
|
|
Et un événement "PROGRESS_CLOUD_SAVED" est enregistré
|
|
|
|
Scénario: Synchronisation automatique au changement d'appareil
|
|
Étant donné un utilisateur "bob@roadwave.fr" sur iPhone
|
|
Quand il se connecte sur iPad
|
|
Alors la progression est téléchargée automatiquement
|
|
Et synchronisée en arrière-plan (< 2s)
|
|
Et un événement "PROGRESS_SYNCED_DEVICE_SWITCH" est enregistré
|
|
|
|
Scénario: Résolution de conflits de synchronisation
|
|
Étant donné un utilisateur "charlie@roadwave.fr" avec 2 appareils
|
|
Et il écoute hors ligne sur les deux simultanément
|
|
Quand les deux se reconnectent avec progressions différentes
|
|
Alors le système fusionne intelligemment les données
|
|
Et conserve la progression la plus avancée
|
|
Et un événement "SYNC_CONFLICT_RESOLVED" est enregistré
|
|
|
|
Scénario: Indicateur de statut de synchronisation
|
|
Étant donné un utilisateur "david@roadwave.fr"
|
|
Alors il voit l'icône de statut sync:
|
|
| État | Icône | Couleur |
|
|
| Synchronisé | ✓ | Vert |
|
|
| En cours de sync | ↻ | Orange |
|
|
| Non synchronisé | ⚠ | Rouge |
|
|
Et un événement "SYNC_STATUS_DISPLAYED" est enregistré
|
|
|
|
Scénario: Sauvegarde locale en mode hors ligne
|
|
Étant donné un utilisateur "eve@roadwave.fr" sans connexion
|
|
Quand elle écoute un audio-guide hors ligne
|
|
Alors toutes les données sont sauvegardées localement
|
|
Et marquées "En attente de synchronisation"
|
|
Et synchronisées automatiquement lors de la reconnexion
|
|
Et un événement "OFFLINE_PROGRESS_QUEUED" est enregistré
|
|
|
|
Scénario: Export de l'historique de progression
|
|
Étant donné un utilisateur "frank@roadwave.fr"
|
|
Quand il demande un export de ses données (RGPD)
|
|
Alors il reçoit un fichier JSON avec:
|
|
| Donnée | Format |
|
|
| Audio-guides écoutés | Liste |
|
|
| Séquences par guide | Détail |
|
|
| Timestamps | ISO 8601 |
|
|
| Positions GPS visitées | Lat/Lon |
|
|
Et un événement "PROGRESS_EXPORTED" est enregistré
|
|
|
|
Scénario: Suppression de progression sur demande
|
|
Étant donné un utilisateur "grace@roadwave.fr"
|
|
Quand elle supprime un audio-guide de son historique
|
|
Alors toutes les données associées sont supprimées
|
|
Et la synchronisation propage la suppression
|
|
Et un événement "PROGRESS_DELETED" est enregistré
|
|
|
|
Scénario: Métriques de fiabilité de la synchronisation
|
|
Étant donné que 100 000 synchronisations ont eu lieu
|
|
Alors les indicateurs suivants sont disponibles:
|
|
| Métrique | Valeur cible |
|
|
| Taux de succès de sync | > 99.5% |
|
|
| Temps moyen de synchronisation| < 2s |
|
|
| Taux de conflits | < 0.5% |
|
|
| Taux de résolution automatique| > 95% |
|
|
Et les métriques sont exportées vers le monitoring
|