batchCooking/apps/web/cypress/e2e
kyuno053 fc886a79cb
experiment: Cucumber/Gherkin + Cypress (#24)
* chore: point de départ pour l'expérimentation Cucumber/Gherkin + Cypress

Repart de zéro (pas de reprise du travail précédent sur
feat/cypress-cucumber, fermée/supprimée) — voir la discussion sur la
PR pour le contexte : bug amont dans
@badeball/cypress-cucumber-preprocessor@26.0.0 (require() synchrone de
dépendances @cucumber/* désormais ESM pur, plusieurs incompatibilités
de schéma trouvées en épinglant d'anciennes versions).

* feat(web): installe cypress-cucumber-preprocessor@22.2.0, versions figées

Étape 1 de l'expérimentation. Versions exactes (pas de ^), comme
demandé, pour éviter que le prochain `pnpm install` fasse dériver la
résolution vers des patchs plus récents :

- @badeball/cypress-cucumber-preprocessor@22.2.0
- @bahmutov/cypress-esbuild-preprocessor@2.2.8
- cypress@13.17.0
- esbuild@0.21.5

Contrairement à v26.0.0 (utilisé dans la tentative précédente,
fermée), cette version charge sans ERR_REQUIRE_ESM — aucun
pnpm.overrides nécessaire cette fois. Vérifié :
- `import { addCucumberPreprocessorPlugin }` : OK
- `addCucumberPreprocessorPlugin(on, config)` avec un contexte Cypress
  minimal : résout sans erreur, enregistre tous ses event handlers
  (before:run, after:run, before:spec, after:spec, after:screenshot,
  task)

À vérifier ensuite : cypress.config.ts + un vrai fichier .feature.

* test(web): feature Gherkin jetable pour valider le pipeline preprocessor

Étape 2 de l'expérimentation — un seul scénario minimal (remplir
email/password sur l'écran de connexion) pour vérifier que
addCucumberPreprocessorPlugin@22.2.0 + l'esbuild plugin fonctionnent
de bout en bout, pas juste au chargement. Steps volontairement
autonomes dans login-smoke.steps.ts (pas de fichier partagé) — tout
ce fichier est prévu pour être supprimé une fois validé.

cypress.config.ts : specPattern couvre maintenant *.cy.ts ET *.feature
en parallèle (le reste de la suite reste en .cy.ts classique pour
l'instant).

Testé en local jusqu'au mur GPU/Electron habituel de cet
environnement (chargement de la config + bundling esbuild passent,
pas d'ERR_REQUIRE_ESM) — la vraie exécution du scénario reste à
vérifier via la CI.

* fix(web): renomme login-smoke.steps.ts en login-smoke.ts

Le vrai (et seul) problème du run précédent : "Step implementation
missing for 'I am not signed in'" — pas un souci ESM/CJS cette fois,
juste une convention de nommage. Le pattern stepDefinitions par défaut
du preprocessor cherche, pour cypress/e2e/login-smoke.feature :

  - cypress/e2e/login-smoke/**/*.{js,mjs,ts,tsx}
  - cypress/e2e/login-smoke.{js,mjs,ts,tsx}   <- même basename, SANS ".steps"
  - cypress/support/step_definitions/**/*.{js,mjs,ts,tsx}

`login-smoke.steps.ts` ne correspond à aucun des trois. Confirmé par
le message d'erreur lui-même (Cypress liste les 3 patterns essayés).
2026-08-19 13:04:21 +02:00
..
account.cy.ts Tests: couverture Cypress pour les paramètres, l'onboarding et la sidebar (step 8/8) 2026-08-17 10:49:19 +02:00
auth.cy.ts Tests: couverture Cypress pour les préférences utilisateur (step 4/4) 2026-08-17 15:56:36 +02:00
household-settings.cy.ts Tests: couverture Cypress pour les paramètres, l'onboarding et la sidebar (step 8/8) 2026-08-17 10:49:19 +02:00
login-smoke.feature experiment: Cucumber/Gherkin + Cypress (#24) 2026-08-19 13:04:21 +02:00
login-smoke.ts experiment: Cucumber/Gherkin + Cypress (#24) 2026-08-19 13:04:21 +02:00
onboarding.cy.ts chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
planning-page.cy.ts Tests: couverture Cypress pour la grille de planning (step 4/4) 2026-08-17 14:19:39 +02:00
preferences.cy.ts chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
recipe-form.cy.ts chore(web): session de polish global — version, checkbox, danger zone, icônes (#20) 2026-08-18 20:52:12 +02:00
recipes.cy.ts fix(web): sidebar reste fixe sur page longue, page Liste de courses centrée (#21) 2026-08-19 10:42:30 +02:00
sidebar.cy.ts Tests: couverture Cypress pour le repli/déploiement de la sidebar 2026-08-17 16:17:06 +02:00
smoke.cy.ts Centralize error handling + code quality pass (comments, SCSS theming) (#7) 2026-08-16 18:40:53 +02:00
user-preferences.cy.ts Tests: couverture Cypress pour les préférences utilisateur (step 4/4) 2026-08-17 15:56:36 +02:00