Files
roadwave/features/api/content-creation/modification-suppression.feature
jpgiannetti 267f574467 feat(gherkin): améliorer scénarios content-creation avec edge cases
- Ajouter scénarios edge cases pour robustesse production
- Aligner fichiers Gherkin avec règles métier section 4
- Préciser suppression OVH Object Storage + NGINX Cache
- Ajouter gestion états transitoires (encodage, validation)
- Ajouter limites et timeouts (uploads, brouillons)

Scénarios ajoutés :
- upload-encodage : timeout, reprise, limites uploads, conservation fichiers
- modification-suppression : suppression pendant encodage, blocage modification en validation
- metadonnees-publication : blocage pendant encodage, limite brouillons, nettoyage auto
- validation-premiers-contenus : verrouillage concurrence modérateurs

Total : +12 scénarios pour 137 scénarios au total
2026-02-01 21:21:09 +01:00

236 lines
10 KiB
Gherkin
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# language: fr
Fonctionnalité: Modification et suppression de contenu
En tant que créateur
Je veux pouvoir modifier ou supprimer mes contenus
Afin de garder le contrôle sur mes publications
Contexte:
Étant donné que l'API RoadWave est disponible
Et que je suis un créateur connecté
Et que j'ai publié un contenu
Scénario: Modifier le titre d'un contenu
Étant donné que mon contenu a le titre "Histoire de Paris"
Quand je modifie le titre en "Histoire fascinante de Paris"
Alors la modification est enregistrée immédiatement
Et je vois le message "Titre modifié avec succès"
Scénario: Correction de coquilles dans le titre
Étant donné que mon titre contient une faute "Histoore de Paris"
Quand je corrige en "Histoire de Paris"
Alors la modification est acceptée
Et le titre corrigé est affiché
Scénario: Ajouter une description ultérieurement
Étant donné que j'ai publié sans description
Quand j'ajoute une description "Découvrez l'histoire de la capitale"
Alors la description est enregistrée
Et elle est visible sur la page du contenu
Scénario: Modifier la description existante
Étant donné que mon contenu a déjà une description
Quand je modifie la description
Alors la nouvelle description remplace l'ancienne
Et la modification est immédiate
Scénario: Modifier les tags pour ajuster pertinence
Étant donné que mon contenu est tagué "Sport", "Musique"
Quand je change les tags en "Sport", "Santé"
Alors les nouveaux tags sont appliqués
Et l'algorithme utilise les nouveaux tags pour recommandations
Scénario: Personnaliser l'image de couverture
Étant donné que mon contenu a une image auto-générée
Quand j'uploade une image personnalisée 800×800px
Alors l'image personnalisée remplace l'image par défaut
Et elle est visible sur le contenu
Scénario: Impossible de modifier l'audio
Étant donné que mon contenu audio est publié
Quand j'essaie de remplacer le fichier audio
Alors la modification est refusée
Et je vois le message "L'audio ne peut pas être modifié après publication"
Scénario: Raison - Éviter fraude audio
Étant donné que je veux changer l'audio après validation
Quand j'essaie de modifier
Alors le système refuse pour éviter:
| risque |
| Uploader contenu validé puis remplacer spam |
| Fraude sur l'intégrité du contenu |
Scénario: Impossible de modifier la zone de diffusion
Étant donné que mon contenu est diffusé à Paris
Quand j'essaie de changer la zone en "National"
Alors la modification est refusée
Et je vois le message "La zone de diffusion ne peut pas être modifiée"
Scénario: Raison - Éviter manipulation algorithme
Étant donné que je veux changer ma zone
Quand j'essaie de modifier
Alors le système refuse pour éviter:
| manipulation |
| Créer "Local Paris" puis changer en "National" |
| Boost artificiel de visibilité |
Scénario: Impossible de modifier le type géo
Étant donné que mon contenu est type "Neutre" (pondération 0.2)
Quand j'essaie de changer en "Ancré" (pondération 0.7)
Alors la modification est refusée
Et je vois le message "Le type géographique ne peut pas être modifié"
Scénario: Raison - Éviter abus de pondération
Étant donné que je veux changer le type géo
Quand j'essaie de modifier
Alors le système refuse pour éviter:
| abus |
| Créer "Neutre" puis passer en "Ancré" |
| Manipulation de la pondération algorithme |
Scénario: Impossible de modifier la classification âge
Étant donné que mon contenu est classé "Tout public"
Quand j'essaie de changer en "18+"
Alors la modification est refusée
Et je vois le message "La classification d'âge ne peut pas être modifiée"
Scénario: Raison - Sécurité mineurs
Étant donné que je veux changer la classification
Quand j'essaie de modifier
Alors le système refuse pour garantir:
| protection |
| Classification vérifiée en modération |
| Pas de contournement validation |
| Sécurité des mineurs |
Scénario: Solution si besoin de changer audio/zone/classification
Étant donné que je veux absolument changer l'audio
Quand je consulte les options
Alors je vois "Supprimer et republier le contenu"
Et c'est la seule solution disponible
Scénario: Republication après suppression - créateur <3 validations
Étant donné que je suis un nouveau créateur (2 contenus validés)
Et que je supprime puis republie un contenu
Quand je republie avec les modifications
Alors le contenu repasse en file de validation
Et une nouvelle validation est effectuée
Scénario: Republication après suppression - créateur vérifié
Étant donné que je suis créateur vérifié (3 contenus validés)
Et que je supprime puis republie un contenu
Quand je republie avec les modifications
Alors le contenu est publié immédiatement
Et aucune validation préalable n'est requise
Scénario: Suppression de contenu immédiate
Quand je clique sur "Supprimer le contenu"
Et que je confirme la suppression
Alors le contenu est supprimé immédiatement
Et disparaît de la liste publique
Scénario: Confirmation avant suppression
Quand je clique sur "Supprimer"
Alors je vois un message de confirmation:
| titre | Êtes-vous sûr ? |
| message | Cette action est définitive |
| warning | Le contenu sera supprimé définitivement |
| actions | Confirmer / Annuler |
Scénario: Suppression définitive et non réversible
Étant donné que j'ai supprimé un contenu
Quand j'essaie de le récupérer
Alors la récupération est impossible
Et le contenu est définitivement perdu
Scénario: Suppression BDD + Cache sous 5 minutes
Quand je supprime un contenu
Alors l'entrée en base de données est marquée "deleted"
Et les fichiers sont marqués pour suppression
Et la suppression effective a lieu sous 5 minutes
Scénario: Historique auditeurs conservé anonymisé
Étant donné que 1000 personnes ont écouté mon contenu
Quand je supprime le contenu
Alors leur historique est conservé
Mais marqué "Contenu supprimé par créateur"
Et la durée d'écoute est conservée pour leurs stats
Scénario: Analytics plateforme anonymisées conservées
Étant donné que mon contenu a généré 10K écoutes
Quand je supprime le contenu
Alors les métriques globales sont conservées anonymement:
| métrique | conservée |
| Total écoutes | (anonyme) |
| Durée totale | (anonyme) |
| Catégorie | (anonyme) |
| Auteur | (anonymisé) |
Et c'est conforme RGPD
Scénario: Fichiers Cache + Storage supprimés sous 24h
Étant donné que mon contenu est supprimé
Quand 24 heures s'écoulent
Alors tous les fichiers audio sont purgés du NGINX Cache
Et tous les fichiers sont supprimés de OVH Object Storage
Et l'espace de stockage est libéré
Scénario: Pas de notification aux auditeurs
Étant donné que 500 utilisateurs ont écouté mon contenu
Quand je supprime le contenu
Alors aucune notification n'est envoyée aux auditeurs
Et il n'y a pas d'effet Streisand
Scénario: Auditeur tente de réécouter contenu supprimé
Étant donné qu'un auditeur a écouté mon contenu
Et que j'ai supprimé ce contenu
Quand l'auditeur tente de le réécouter depuis son historique
Alors il voit le message "Ce contenu n'est plus disponible"
Et la lecture est impossible
Scénario: Historique auditeur conserve trace
Étant donné qu'un auditeur a écouté mon contenu le 15 janvier
Et que je supprime le contenu le 20 janvier
Quand l'auditeur consulte son historique
Alors il voit "Vous avez écouté ce contenu le 15 janvier 2026"
Et le titre est remplacé par "Contenu supprimé"
Et la date d'écoute est conservée
Scénario: Statistiques créateur après suppression
Étant donné que j'ai publié 10 contenus
Et que je supprime 2 contenus
Quand je consulte mes statistiques globales
Alors je vois:
| métrique | valeur |
| Contenus publiés | 8 (actifs) |
| Total historique | 10 |
| Suppressions | 2 |
Et l'historique des suppressions est visible
Scénario: Limite de modifications par contenu
Étant donné que j'ai modifié un titre 10 fois
Quand j'essaie de modifier une 11ème fois
Alors la modification est acceptée
Car il n'y a pas de limite de modifications pour champs autorisés
Scénario: Historique des modifications visible
Étant donné que j'ai modifié un contenu plusieurs fois
Quand je consulte l'historique
Alors je vois:
| date | modification |
| 21/01/2026 | Titre changé |
| 20/01/2026 | Tags modifiés |
| 19/01/2026 | Description ajoutée |
Et je peux tracer toutes les modifications
Scénario: Suppression d'un contenu en cours d'encodage
Étant donné que mon contenu est en cours d'encodage (50%)
Quand je supprime le contenu
Alors l'encodage est annulé immédiatement
Et le fichier temporaire est supprimé
Et je vois le message "Contenu et encodage supprimés"
Scénario: Impossible de modifier un contenu en cours de validation
Étant donné que mon contenu est en file de validation
Quand j'essaie de modifier le titre
Alors la modification est refusée
Et je vois le message "Impossible de modifier pendant la validation"