batchCooking/apps/web/cypress/e2e/sidebar.feature
Nicolas 20d52aee2d feat(web): migre les specs Cypress vers Cucumber/Gherkin
Les tests e2e (apps/web/cypress/e2e/) étaient de simples specs Cypress
(.cy.ts), sans lien avec Cucumber alors qu'apps/api utilise déjà
Gherkin pour ses propres tests BDD. Intègre
@badeball/cypress-cucumber-preprocessor pour écrire les scénarios
utilisateurs en Gherkin des deux côtés, même vocabulaire.

- cypress.config.ts : specPattern sur *.feature, wiring du
  préprocesseur (esbuild bundler + plugin cucumber)
- Les 11 fichiers .cy.ts sont remplacés par des paires .feature/.steps.ts
  (co-localisées, même nom) — conversion complète, comportement
  équivalent (mêmes intercepts, mêmes assertions)
- cypress/support/step_definitions/common.steps.ts : steps partagés
  entre features (connexion, navigation, assertions génériques de
  texte/URL/champ) — globaux à toute la suite, réutilisables tels quels
- cypress/support/profile.ts : profil du compte "connecté" courant,
  assemblé au fil de plusieurs Given avant le premier visit/When
- README : nouvelle section "Cucumber (apps/web)" (miroir de la section
  existante pour apps/api), mise à jour des références aux anciens noms
  de fichiers .cy.ts (déjà obsolètes avant ce changement)

Vérification : impossible d'exécuter Cypress dans cet environnement
(crash Electron/GPU au lancement, limitation déjà documentée dans le
README — reproductible sur main, indépendante de ce changement). À la
place :
- les 447 steps Gherkin des 11 .feature ont été vérifiés
  programmatiquement contre les 165 patterns de step enregistrés : 0
  non résolu, 0 ambigu
- les 11 .feature parsent correctement avec le parser Gherkin officiel
  (57 scénarios au total)
- tous les .steps.ts passent `biome check` (syntaxe + style) sans erreur
- CYPRESS_INSTALL_BINARY déjà géré (voir PR précédente) — le binaire est
  bien présent localement (`cypress verify` OK), donc le blocage est
  spécifiquement le sandbox GPU de cet environnement, pas l'installation

La vraie exécution reste à vérifier via le job `e2e` de la CI GitHub
Actions sur cette PR — c'est le chemin déjà documenté dans le README
pour cet environnement précis.
2026-08-19 09:42:29 +02:00

47 lines
1.9 KiB
Gherkin

Feature: Sidebar — settings menu and account menu
As a signed-in user
I want to reach the settings pages and collapse the sidebar
So that I can navigate the app comfortably regardless of screen space
Background:
Given I am signed in as "Alice" "Martin"
And the planning request returns nothing
Scenario: No longer lists Foyer in the main nav
When I visit "/"
Then the sidebar's main nav should not mention "Foyer"
Scenario: Reveals the four settings pages behind the Paramètres toggle
When I visit "/"
Then I should not see "Compte"
When I click the button "Paramètres"
Then the link "Compte" should point to "/parametres/compte"
And the link "Préférences alimentaires" should point to "/parametres/preferences"
And the link "Foyer" should point to "/parametres/foyer"
And the link "Préférences utilisateur" should point to "/parametres/preferences-utilisateur"
Scenario: Opens the account menu from the greeting and links to Mon compte
When I visit "/"
Then I should not see "Mon compte"
When I open the account menu
And I click the link "Mon compte"
Then the URL should include "/parametres/compte"
Scenario: Redirects the old /foyer path to /parametres/foyer
Given the household request returns no household
When I visit "/foyer"
Then the URL should include "/parametres/foyer"
Scenario: Collapses to an icon-only rail and back, persisting the choice across reloads
When I visit "/"
Then the sidebar should not be collapsed
And the nav link "Planning" should be visible
When I toggle the sidebar collapse
Then the sidebar should be collapsed
And the nav link "Planning"'s label should be hidden
And the nav link titled "Planning" should be visible
When I reload the page
Then the sidebar should be collapsed
When I toggle the sidebar collapse
Then the sidebar should not be collapsed
And the nav link "Planning" should be visible