Files
roadwave/features/api/audio-guides/gestion-point-manque.feature
jpgiannetti c48222cc63 feat(gherkin): compléter couverture règles métier avec 47 features manquantes
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.
2026-02-03 21:25:47 +01:00

192 lines
11 KiB
Gherkin

# language: fr
@api @audio-guides @navigation @mvp
Fonctionnalité: Gestion des points d'intérêt manqués
En tant qu'utilisateur
Je veux pouvoir gérer les points d'intérêt que j'ai manqués
Afin de compléter mon expérience audio-guide même après avoir dépassé certains points
Contexte:
Étant donné que le système de gestion des points manqués respecte:
| Paramètre | Valeur |
| Distance max pour considérer "manqué" | 1 km |
| Temps max pour considérer "manqué" | 10 minutes |
| Possibilité de retour arrière | Oui |
| Lecture différée autorisée | Oui |
Scénario: Détection automatique d'un point manqué en mode voiture
Étant donné un utilisateur "alice@roadwave.fr" en mode voiture à 90 km/h
Et elle suit l'audio-guide "Route des Châteaux de la Loire"
Et le prochain point d'intérêt est le Château de Chaumont
Quand elle dépasse le château sans entrer dans son rayon de déclenchement (400m)
Et elle s'éloigne à plus de 1 km du point
Alors le système marque le point comme "Manqué"
Et une notification discrète s'affiche: "Point manqué : Château de Chaumont"
Et le point apparaît dans la section "Points manqués" de la liste
Et un événement "POI_MARKED_AS_MISSED" est enregistré avec raison: "out_of_range"
Et la métrique "poi.missed.out_of_range" est incrémentée
Scénario: Affichage de la liste des points manqués
Étant donné un utilisateur "bob@roadwave.fr" qui a manqué 3 points sur 10
Quand il ouvre la liste des séquences
Alors il voit une section dédiée "Points manqués (3)":
| Point d'intérêt | Distance actuelle | Actions |
| Château de Chaumont | 15 km en arrière | [Écouter] [Y retourner] |
| Musée de Cluny | 8 km en arrière | [Écouter] [Y retourner] |
| Rue Mouffetard | 2 km en arrière | [Écouter] [Y retourner] |
Et un compteur global affiche: "7/10 points visités"
Et un événement "MISSED_POIS_LIST_VIEWED" est enregistré
Et la métrique "missed_pois.list_viewed" est incrémentée
Scénario: Écoute différée d'un point manqué sans retour physique
Étant donné un utilisateur "charlie@roadwave.fr" qui a manqué le Château de Chaumont
Et il est maintenant à 20 km du château
Quand il clique sur "Écouter" dans la liste des points manqués
Alors l'audio du Château de Chaumont démarre immédiatement
Et un bandeau indique: "Écoute différée - Vous n'êtes pas sur place"
Et le point reste marqué comme "Manqué mais écouté"
Et un événement "MISSED_POI_LISTENED_REMOTE" est enregistré
Et la métrique "missed_poi.listened.remote" est incrémentée
Scénario: Navigation de retour vers un point manqué
Étant donné un utilisateur "david@roadwave.fr" qui a manqué le Musée de Cluny
Et il est à 5 km du musée
Quand il clique sur "Y retourner" dans la liste des points manqués
Alors l'application lance la navigation GPS vers le Musée de Cluny
Et un itinéraire est calculé et affiché
Et l'ETA est affiché: "12 min en voiture"
Et un événement "NAVIGATION_TO_MISSED_POI_STARTED" est enregistré
Et la métrique "missed_poi.navigation_started" est incrémentée
Scénario: Retour physique et déclenchement automatique d'un point manqué
Étant donné un utilisateur "eve@roadwave.fr" qui a manqué le Château de Chaumont
Et elle a cliqué sur "Y retourner"
Quand elle arrive dans le rayon de déclenchement du château (400m)
Alors l'audio du château démarre automatiquement
Et le point passe du statut "Manqué" à "Visité"
Et une notification de succès s'affiche: " Point complété : Château de Chaumont"
Et un événement "MISSED_POI_COMPLETED" est enregistré
Et la métrique "missed_poi.completed" est incrémentée
Scénario: Proposition automatique de retour pour points manqués à proximité
Étant donné un utilisateur "frank@roadwave.fr" qui a manqué la Rue Mouffetard
Et il continue son parcours et arrive près d'un autre point
Quand le système détecte qu'il est à 800m de la Rue Mouffetard
Alors une notification proactive s'affiche: "Point manqué à proximité : Rue Mouffetard (800m). Y aller ?"
Et deux boutons sont proposés: [Oui, y aller] [Non, continuer]
Et un événement "MISSED_POI_PROXIMITY_SUGGESTION" est enregistré
Et la métrique "missed_poi.proximity_suggestion" est incrémentée
Scénario: Ignorance volontaire d'un point manqué
Étant donné un utilisateur "grace@roadwave.fr" qui a manqué le Musée de Cluny
Et elle ne souhaite pas y retourner
Quand elle fait glisser le point vers la gauche dans la liste
Et clique sur "Ignorer définitivement"
Alors le point est retiré de la liste des points manqués
Et il passe au statut "Ignoré"
Et il ne sera plus proposé dans les suggestions
Et un événement "MISSED_POI_IGNORED" est enregistré
Et la métrique "missed_poi.ignored" est incrémentée
Scénario: Réinitialisation d'un point ignoré
Étant donné un utilisateur "henry@roadwave.fr" qui a ignoré le Musée de Cluny
Quand il accède aux paramètres de l'audio-guide
Et clique sur "Voir les points ignorés (1)"
Alors il voit la liste: "Musée de Cluny - Ignoré"
Quand il clique sur "Réactiver"
Alors le point repasse en statut "Manqué"
Et il réapparaît dans la liste des points manqués
Et un événement "MISSED_POI_REACTIVATED" est enregistré
Et la métrique "missed_poi.reactivated" est incrémentée
Scénario: Marquage automatique comme manqué après délai en mode piéton
Étant donné un utilisateur "iris@roadwave.fr" en mode piéton
Et elle est à 150m du Panthéon depuis 15 minutes (stationnaire)
Et elle n'a pas déclenché le point d'intérêt
Quand elle reprend sa marche et s'éloigne à plus de 500m
Alors le point est marqué comme "Manqué"
Et une notification s'affiche: "Point manqué : Panthéon. Voulez-vous y retourner ?"
Et un événement "POI_MARKED_AS_MISSED" est enregistré avec raison: "timeout_stationary"
Et la métrique "poi.missed.timeout" est incrémentée
Scénario: Statistiques des points manqués en fin de parcours
Étant donné un utilisateur "jack@roadwave.fr" qui a terminé un audio-guide
Et il a visité 7 points sur 10, manqué 2 points et ignoré 1 point
Quand il consulte l'écran de fin de parcours
Alors il voit les statistiques:
| Métrique | Valeur |
| Points visités | 7/10 (70%) |
| Points manqués | 2 (Chaumont, Cluny) |
| Points ignorés | 1 (Rue Mouffetard) |
| Taux de complétion | 70% |
| Badge obtenu | Explorateur Bronze |
Et un bouton "Compléter les points manqués" est proposé
Et un événement "AUDIO_GUIDE_STATS_VIEWED" est enregistré
Scénario: Reprise d'un audio-guide pour compléter les points manqués
Étant donné un utilisateur "kate@roadwave.fr" qui a terminé un audio-guide avec 2 points manqués
Quand elle clique sur "Compléter les points manqués"
Alors l'audio-guide est réactivé en mode "Rattrapage"
Et seuls les 2 points manqués sont actifs sur la carte
Et les points déjà visités sont grisés
Et la navigation se concentre uniquement sur les points manqués
Et un événement "AUDIO_GUIDE_CATCH_UP_MODE" est enregistré
Et la métrique "audio_guide.catch_up.started" est incrémentée
Scénario: Badge de complétion "Perfectionniste" pour 100% de complétion
Étant donné un utilisateur "luke@roadwave.fr" qui a visité 10/10 points
Et il a initialement manqué 2 points mais y est retourné
Quand il termine l'audio-guide avec 100% de complétion
Alors un badge spécial "Perfectionniste" est débloqué
Et une animation de célébration est affichée
Et un événement "BADGE_PERFECTIONIST_UNLOCKED" est enregistré
Et la métrique "badges.perfectionist.unlocked" est incrémentée
Scénario: Notification push après 24h pour rappel des points manqués
Étant donné un utilisateur "mary@roadwave.fr" qui a terminé un audio-guide hier
Et elle a manqué 3 points sur 10
Quand 24 heures se sont écoulées depuis la fin du parcours
Alors une notification push est envoyée:
"Vous avez manqué 3 points lors de votre visite du Quartier Latin. Voulez-vous les découvrir ?"
Et un lien direct vers la liste des points manqués est inclus
Et un événement "MISSED_POIS_REMINDER_SENT" est enregistré
Et la métrique "missed_pois.reminder_sent" est incrémentée
Scénario: Mode "Rattrapage intelligent" avec optimisation de l'itinéraire
Étant donné un utilisateur "nathan@roadwave.fr" avec 3 points manqués:
| Point | Position actuelle | Distance |
| Château de Chaumont | 48.8475, 2.3450 | 12 km |
| Musée de Cluny | 48.8505, 2.3434 | 8 km |
| Rue Mouffetard | 48.8429, 2.3498 | 5 km |
Quand il clique sur "Itinéraire optimisé pour rattrapage"
Alors le système calcule l'itinéraire le plus court pour visiter les 3 points:
| Ordre | Point | Distance cumulée |
| 1 | Rue Mouffetard | 5 km |
| 2 | Musée de Cluny | 8.5 km |
| 3 | Château de Chaumont | 20.5 km |
Et l'ETA total est affiché: "1h 15min en voiture"
Et un événement "OPTIMIZED_CATCH_UP_ROUTE_CALCULATED" est enregistré
Et la métrique "missed_pois.optimized_route" est incrémentée
Scénario: Désactivation de la détection automatique des points manqués
Étant donné un utilisateur "olive@roadwave.fr" qui préfère une expérience libre
Quand elle active l'option "Désactiver la détection des points manqués"
Alors les points ne sont jamais marqués comme "Manqués"
Et aucune notification de point manqué n'est affichée
Et l'utilisateur peut toujours écouter tous les points manuellement
Et un événement "MISSED_POIS_DETECTION_DISABLED" est enregistré
Et la métrique "missed_pois.detection_disabled" est incrémentée
Scénario: Métriques de performance de la gestion des points manqués
Étant donné que 10 000 utilisateurs ont terminé des audio-guides
Quand les métriques sont collectées
Alors les indicateurs suivants sont disponibles:
| Métrique | Valeur moyenne |
| Pourcentage de points manqués par parcours| 18% |
| Taux de retour aux points manqués | 35% |
| Taux d'écoute différée (sans retour) | 55% |
| Taux d'ignorance définitive | 10% |
| Taux de complétion après rattrapage | 92% |
Et les métriques sont exportées vers le système de monitoring