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
This commit is contained in:
@@ -230,3 +230,21 @@ Fonctionnalité: Métadonnées et publication de contenu
|
||||
Quand j'accède à mes contenus
|
||||
Alors je vois le brouillon avec statut "📝 Brouillon"
|
||||
Et je peux reprendre la publication
|
||||
|
||||
Scénario: Impossible de publier pendant encodage en cours
|
||||
Étant donné que mon fichier est en cours d'encodage
|
||||
Quand j'essaie de remplir les métadonnées
|
||||
Alors je vois le message "Encodage en cours, veuillez patienter"
|
||||
Et l'interface de publication est désactivée
|
||||
|
||||
Scénario: Limite de 10 brouillons maximum
|
||||
Étant donné que j'ai déjà 10 brouillons sauvegardés
|
||||
Quand j'essaie de créer un 11ème brouillon
|
||||
Alors le brouillon est refusé
|
||||
Et je vois le message "Maximum 10 brouillons. Publiez ou supprimez un brouillon existant."
|
||||
|
||||
Scénario: Suppression automatique brouillons après 30 jours
|
||||
Étant donné que j'ai un brouillon de plus de 30 jours
|
||||
Quand le système effectue le nettoyage automatique
|
||||
Alors le brouillon est supprimé automatiquement
|
||||
Et je reçois une notification "Brouillon '[Titre]' supprimé (>30 jours)"
|
||||
|
||||
@@ -142,10 +142,10 @@ Fonctionnalité: Modification et suppression de contenu
|
||||
Alors la récupération est impossible
|
||||
Et le contenu est définitivement perdu
|
||||
|
||||
Scénario: Suppression BDD + CDN sous 5 minutes
|
||||
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 CDN sont marqués pour suppression
|
||||
Et les fichiers sont marqués pour suppression
|
||||
Et la suppression effective a lieu sous 5 minutes
|
||||
|
||||
Scénario: Historique auditeurs conservé anonymisé
|
||||
@@ -166,10 +166,11 @@ Fonctionnalité: Modification et suppression de contenu
|
||||
| Auteur | ❌ (anonymisé) |
|
||||
Et c'est conforme RGPD
|
||||
|
||||
Scénario: Fichiers CDN supprimés sous 24h
|
||||
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
|
||||
@@ -219,3 +220,16 @@ Fonctionnalité: Modification et suppression de contenu
|
||||
| 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"
|
||||
|
||||
@@ -191,3 +191,41 @@ Fonctionnalité: Upload et encodage de contenu audio
|
||||
Quand je clique sur "Réessayer"
|
||||
Alors un nouveau job d'encodage est lancé
|
||||
Et je peux tenter à nouveau
|
||||
|
||||
Scénario: Timeout upload après 30 minutes
|
||||
Étant donné que mon upload dure plus de 30 minutes
|
||||
Quand le timeout est atteint
|
||||
Alors l'upload est annulé
|
||||
Et je vois le message "Upload interrompu, veuillez réessayer"
|
||||
Et je peux reprendre l'upload
|
||||
|
||||
Scénario: Reprise upload après interruption réseau
|
||||
Étant donné que mon upload a échoué à 75%
|
||||
Quand je clique sur "Reprendre"
|
||||
Alors l'upload reprend à partir de 75%
|
||||
Et le fichier partiel est conservé temporairement
|
||||
|
||||
Scénario: Limite de 3 uploads simultanés
|
||||
Étant donné que j'ai déjà 3 uploads en cours
|
||||
Quand j'essaie d'uploader un 4ème fichier
|
||||
Alors l'upload est refusé
|
||||
Et je vois le message "Maximum 3 uploads simultanés. Attendez qu'un upload se termine."
|
||||
|
||||
Scénario: Détection fichier corrompu pendant upload
|
||||
Étant donné que j'uploade un fichier MP3 corrompu
|
||||
Quand le backend détecte la corruption
|
||||
Alors l'upload est rejeté immédiatement
|
||||
Et je vois le message "Fichier corrompu, veuillez vérifier votre fichier"
|
||||
Et je n'attends pas la fin de l'encodage
|
||||
|
||||
Scénario: Fichier original conservé pendant 48h après échec
|
||||
Étant donné que mon encodage a échoué
|
||||
Quand je clique sur "Réessayer" dans les 48h
|
||||
Alors le fichier original est encore disponible
|
||||
Et un nouvel encodage démarre sans réupload
|
||||
|
||||
Scénario: Fichier original supprimé après 48h
|
||||
Étant donné que mon encodage a échoué il y a 48h
|
||||
Quand j'essaie de réessayer
|
||||
Alors je dois réuploader le fichier
|
||||
Et je vois le message "Fichier original expiré, veuillez réuploader"
|
||||
|
||||
@@ -209,3 +209,9 @@ Fonctionnalité: Validation des 3 premiers contenus
|
||||
| Vérification metadata| 15s |
|
||||
| Décision | 5s |
|
||||
| Total | 110s |
|
||||
|
||||
Scénario: Verrouillage contenu pendant traitement modérateur
|
||||
Étant donné que le modérateur A ouvre un contenu pour validation
|
||||
Quand le modérateur B essaie d'ouvrir le même contenu
|
||||
Alors le modérateur B voit le message "Contenu en cours de traitement par [Modérateur A]"
|
||||
Et le contenu est verrouillé pour éviter doublon
|
||||
|
||||
Reference in New Issue
Block a user