Initial commit
This commit is contained in:
221
features/content-creation/modification-suppression.feature
Normal file
221
features/content-creation/modification-suppression.feature
Normal file
@@ -0,0 +1,221 @@
|
||||
# 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 + CDN sous 5 minutes
|
||||
Quand je supprime un contenu
|
||||
Alors l'entrée en base de données est marquée "deleted"
|
||||
Et les fichiers CDN 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 CDN 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 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
|
||||
Reference in New Issue
Block a user