Files
roadwave/features/api/radio-live/demarrage-live.feature
jpgiannetti 37c62206ad feat(bdd): réorganiser features en catégories api/ui/e2e et créer ADR-024
Résolution des incohérences #10, #11, et #12 de l'analyse d'architecture.

## Phase 1 : Réorganisation Features BDD (Point #10 - RÉSOLU)

- Créer structure features/{api,ui,e2e}
- Déplacer 83 features en 3 catégories via git mv (historique préservé)
  - features/api/ : 53 features (tests API backend)
  - features/ui/ : 22 features (tests UI mobile)
  - features/e2e/ : 8 features (tests end-to-end)

Domaines déplacés :
- API : authentication, recommendation, rgpd-compliance, content-creation,
  moderation, monetisation, premium, radio-live, publicites
- UI : audio-guides, navigation, interest-gauges, mode-offline,
  partage, profil, recherche
- E2E : abonnements, error-handling

## Phase 2 : Mise à jour Documentation

### ADR-007 - Tests BDD
- Ajouter section "Convention de Catégorisation des Features"
- Documenter règles api/ui/e2e avec exemples concrets
- Spécifier step definitions (backend Go, mobile Dart)

### ADR-024 - Stratégie CI/CD Monorepo (NOUVEAU)
- Créer ADR dédié pour stratégie CI/CD avec path filters
- Architecture workflows séparés (backend.yml, mobile.yml, shared.yml)
- Configuration path filters détaillée avec exemples YAML
- Matrice de déclenchement et optimisations (~70% gain temps CI)
- Plan d'implémentation (~2h, reporté jusqu'au développement)

### ADR-016 - Organisation Monorepo
- Simplifier en retirant section CI/CD détaillée
- Ajouter référence vers ADR-024 pour stratégie CI/CD

### INCONSISTENCIES-ANALYSIS.md
- Point #10 (Tests BDD synchronisés) :  RÉSOLU
  - Catégorisation features implémentée
  - ADR-007 mis à jour avec convention complète
- Point #11 (70/30 Split paiements) :  ANNULÉ (faux problème)
  - ADR-009 et Règle 18 parfaitement cohérents
  - Documentation exhaustive existante (formule, SQL, comparaisons)
- Point #12 (Monorepo path filters) : ⏸️ DOCUMENTÉ
  - Architecture CI/CD complète dans ADR-024
  - Implémentation reportée (projet en phase documentation)
- Métriques mises à jour :
  - MODERATE : 6/9 traités (4 résolus + 1 annulé + 1 documenté)
  - ADR à jour : 100% (19/19 avec ADR-024)

## Phase 3 : Validation

- Structure features validée (api/ui/e2e, aucun répertoire restant)
- Historique Git préservé (git mv, renommages détectés)
- 83 features total (API: 53, UI: 22, E2E: 8)

Closes: Point #10 (résolu), Point #11 (annulé), Point #12 (documenté)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-01 11:31:41 +01:00

152 lines
7.4 KiB
Gherkin

# language: fr
Fonctionnalité: Démarrage d'un live
En tant que créateur
Je veux démarrer une diffusion en direct
Afin de partager du contenu audio en temps réel avec mes auditeurs
Contexte:
Étant donné que l'API RoadWave est disponible
Et que je suis connecté en tant que créateur vérifié
Et que j'ai les permissions de diffusion live
Scénario: Vérifications pré-live réussies
Étant donné que ma connexion upload est supérieure à 1 Mbps
Et que j'ai autorisé l'accès au microphone
Et que j'ai défini une zone de diffusion "Île-de-France"
Quand je lance les vérifications pré-live
Alors toutes les vérifications sont validées
Et je peux démarrer le live
Scénario: Échec pré-live avec connexion insuffisante
Étant donné que ma connexion upload est de 0.5 Mbps
Quand je lance les vérifications pré-live
Alors je vois un warning "Connexion insuffisante pour garantir une diffusion stable (minimum 1 Mbps)"
Et je peux choisir de continuer quand même ou d'annuler
Scénario: Échec pré-live sans autorisation microphone
Étant donné que je n'ai pas autorisé l'accès au microphone
Quand j'essaie de démarrer un live
Alors je vois le message "Accès au microphone requis pour démarrer un live"
Et je suis redirigé vers les paramètres système
Scénario: Échec pré-live sans zone de diffusion définie
Étant donné que je n'ai pas défini de zone de diffusion
Quand j'essaie de démarrer un live
Alors je vois le message "Veuillez définir une zone de diffusion avant de démarrer"
Et je suis redirigé vers le formulaire de configuration du live
Scénario: Démarrage live avec buffer 15 secondes
Étant donné que toutes les vérifications pré-live sont validées
Quand j'appuie sur "Démarrer live"
Alors je vois le message "Live démarre dans 15s... Testez votre micro"
Et un compte à rebours de 15 secondes s'affiche
Et mon flux audio est enregistré pendant ces 15 secondes
Et le live n'est pas encore visible publiquement
Scénario: Live devient public après buffer initial
Étant donné que j'ai démarré un live
Et que le buffer de 15 secondes s'est écoulé
Alors le live devient public
Et les auditeurs peuvent le rejoindre
Et les abonnés dans la zone reçoivent une notification push
Scénario: Notification push aux abonnés dans la zone géographique
Étant donné que j'ai 1000 abonnés au total
Et que 300 abonnés sont situés en Île-de-France
Et que 700 abonnés sont situés hors Île-de-France
Quand mon live en Île-de-France devient public
Alors 300 abonnés reçoivent une notification push "🔴 [Mon pseudo] est en direct : [Titre live]"
Et 700 abonnés ne reçoivent pas de notification
Scénario: Configuration métadonnées obligatoires pour un live
Quand je configure un nouveau live
Alors je dois renseigner:
| champ | format | validation |
| Titre | 5-100 caractères | Obligatoire |
| Tags | 1-3 centres intérêt| Sélection liste prédéfinie |
| Classification âge | Enum | Tout public / 13+ / 16+ / 18+ |
| Zone diffusion | Geo | Ville / Département / Région / National |
Scénario: Validation échouée avec titre trop court
Quand j'essaie de créer un live avec le titre "Live"
Alors la validation échoue
Et je vois le message "Le titre doit contenir entre 5 et 100 caractères"
Scénario: Validation échouée sans tags
Étant donné que j'ai rempli tous les champs sauf les tags
Quand j'essaie de démarrer le live
Alors la validation échoue
Et je vois le message "Veuillez sélectionner entre 1 et 3 centres d'intérêt"
Scénario: Limite de durée 8 heures
Étant donné que mon live dure depuis 7 heures et 30 minutes
Alors je vois un warning "Votre live se terminera dans 30 min"
Et le message est affiché de manière non intrusive
Scénario: Arrêt automatique à 8 heures
Étant donné que mon live dure depuis 8 heures
Alors le live s'arrête automatiquement
Et je vois le message "Durée maximale atteinte (8 heures). Vous pouvez redémarrer un nouveau live si nécessaire"
Et le processus de traitement post-live démarre
Scénario: Diffusion contenu interdit - Concert en direct
Étant donné que je diffuse un concert en direct depuis une salle
Et qu'un auditeur signale le contenu pour "Violation droits d'auteur"
Quand un modérateur écoute le live
Et qu'il confirme la violation
Alors le live est arrêté immédiatement
Et je reçois un Strike 2 (suspension 7 jours)
Et je vois le message "Votre live a été interrompu pour violation des droits d'auteur"
Et le replay n'est pas publié
Scénario: Diffusion contenu interdit - Événement sportif payant
Étant donné que je diffuse un match de football avec droits TV
Et que le contenu est détecté par l'IA audio fingerprint
Quand la détection est confirmée
Alors le live est arrêté immédiatement
Et je reçois un Strike 2 (suspension 7 jours)
Scénario: Diffusion contenu violent
Étant donné que je diffuse du contenu violent (agression physique)
Et que 5 auditeurs signalent le contenu
Quand un modérateur vérifie en temps réel
Et confirme la violence
Alors le live est coupé immédiatement
Et mon compte est banni définitivement
Et les autorités sont notifiées
Scénario: Détection musique protégée en arrière-plan
Étant donné que mon live contient de la musique protégée en fond
Quand l'IA audio fingerprint détecte la violation après 2 minutes
Alors je reçois un avertissement en direct "Musique protégée détectée. Veuillez couper le son ou risquez un arrêt du live"
Et j'ai 30 secondes pour corriger
Et si je ne corrige pas, le live est arrêté avec Strike 1
Scénario: Signalement pendant un live
Étant donné que je diffuse un live
Et qu'un auditeur clique sur "Signaler"
Quand l'auditeur sélectionne la catégorie "Harcèlement"
Alors le signalement est envoyé en priorité HAUTE
Et un modérateur peut écouter le live en temps réel
Et le live continue pendant l'écoute de vérification
Scénario: Dépassement nombre de lives simultanés autorisés (limite plateforme)
Étant donné que la plateforme héberge actuellement 2000 lives simultanés
Et que c'est la limite de l'infrastructure actuelle
Quand j'essaie de démarrer un nouveau live
Alors je vois le message "Capacité maximale atteinte. Veuillez réessayer dans quelques minutes"
Et ma demande est mise en file d'attente prioritaire si je suis créateur Premium
Scénario: Premier live d'un nouveau créateur
Étant donné que je n'ai jamais diffusé de live auparavant
Et que j'ai moins de 3 contenus validés
Quand j'essaie de démarrer mon premier live
Alors je vois le message "Les lives sont disponibles après validation de vos 3 premiers contenus"
Et le bouton "Démarrer live" est désactivé
Scénario: Créateur avec score de confiance faible
Étant donné que j'ai 2 strikes actifs
Quand j'essaie de démarrer un live
Alors je vois le message "Fonctionnalité live temporairement indisponible suite à vos sanctions"
Et je dois attendre la fin de ma suspension