first commit
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
Feature: Construire un bento en 3 étapes
|
||||
En tant qu'utilisateur
|
||||
Je veux choisir une base puis une variante
|
||||
Afin d'obtenir une recette ordonnée et partageable
|
||||
|
||||
@int-builder-continue-after-base
|
||||
Scenario: Afficher le bouton continuer après choix base
|
||||
Given je suis sur l'étape base
|
||||
When je sélectionne une base salée
|
||||
Then le bouton continuer apparaît
|
||||
And un texte historique de la base est visible
|
||||
|
||||
@int-builder-variant-filter
|
||||
Scenario: Filtrer les variantes par base
|
||||
Given j'ai choisi la base "onigiri-base"
|
||||
When j'ouvre l'étape variante
|
||||
Then seules les variantes compatibles sont affichées
|
||||
@@ -0,0 +1,10 @@
|
||||
Feature: Chemins d'assets publics compatibles BASE_URL
|
||||
En tant qu'application déployée derrière un base path Vite (ou via Capacitor)
|
||||
Je veux que tous les assets publics soient résolus via publicAssetHref
|
||||
Afin qu'aucun chemin absolu `/...` ne casse au runtime
|
||||
|
||||
@int-public-asset-base-path
|
||||
Scenario: Préfixer logo, tour d'accueil, fallback ingrédient et images catalogue par BASE_URL
|
||||
Given Vite expose un base path "/ben-to/"
|
||||
When les composants chargent les assets publics (logo, tour, fallback, catalogue)
|
||||
Then chaque URL est préfixée par "/ben-to"
|
||||
@@ -0,0 +1,32 @@
|
||||
Feature: En-têtes de sécurité et Content-Security-Policy
|
||||
En tant qu'application web servie publiquement
|
||||
Je veux un ensemble d'en-têtes de sécurité durcis (CSP, X-Frame-Options, etc.)
|
||||
Afin de limiter la surface d'attaque (XSS, clickjacking, exfiltration)
|
||||
|
||||
@int-csp-html-injection
|
||||
Scenario: Le HTML injecte la balise meta Content-Security-Policy
|
||||
Given le plugin CSP est activé en production
|
||||
When l'index HTML de production est généré
|
||||
Then il contient une balise meta http-equiv "Content-Security-Policy"
|
||||
And la directive "frame-ancestors" vaut "'none'"
|
||||
And la directive "object-src" vaut "'none'"
|
||||
And aucune directive n'autorise "unsafe-eval" hors dev
|
||||
|
||||
@int-csp-matomo-origin
|
||||
Scenario: La CSP s'adapte à la configuration Matomo
|
||||
Given la variable de build "VITE_MATOMO_URL" vaut "https://analytics.example.com/"
|
||||
When la CSP est calculée pour la production
|
||||
Then la directive "script-src" autorise l'origine "https://analytics.example.com"
|
||||
And la directive "connect-src" autorise l'origine "https://analytics.example.com"
|
||||
And la directive "img-src" autorise l'origine "https://analytics.example.com"
|
||||
And la directive "default-src" reste limitée à "'self'"
|
||||
|
||||
@int-csp-serve-json
|
||||
Scenario: dist/serve.json expose les en-têtes à servir
|
||||
Given le build de production est exécuté
|
||||
When le fichier "dist/serve.json" est écrit
|
||||
Then il contient une règle ciblant les pages HTML avec une "Content-Security-Policy"
|
||||
And il contient "X-Content-Type-Options" avec la valeur "nosniff"
|
||||
And il contient "X-Frame-Options" avec la valeur "DENY"
|
||||
And il contient "Referrer-Policy" avec la valeur "strict-origin-when-cross-origin"
|
||||
And il contient "Permissions-Policy" désactivant caméra, micro et géolocalisation
|
||||
@@ -0,0 +1,10 @@
|
||||
Feature: Modale première visite
|
||||
En tant qu'utilisateur sur la page d'accueil
|
||||
Je veux un court tour des fonctionnalités
|
||||
Afin de comprendre le constructeur avant de commencer
|
||||
|
||||
@int-welcome-tour-dismiss
|
||||
Scenario: Mémoriser la fermeture du tour d'accueil
|
||||
Given aucune entrée de tour n'est encore enregistrée localement
|
||||
When l'utilisateur enregistre la fermeture pour la version courante du tour
|
||||
Then le stockage local contient la version attendue du tour
|
||||
Reference in New Issue
Block a user