Commit graph

2 commits

Author SHA1 Message Date
a7d1103b4a fix(web): remplace le hook Before() par un reset dans le premier step
Même famille de bug que les 2 commits précédents : dès qu'un
Before()/After() Cucumber est enregistré, le browser runtime du
preprocessor lit `messages.HookType.BEFORE_TEST_CASE`/`AFTER_TEST_CASE`
pour le rapporter — absent de @cucumber/messages@17.1.1 (voir
l'override dans package.json). Confirmé par le run CI précédent :
chaque scénario plantait sur "Cannot read properties of undefined
(reading 'BEFORE_TEST_CASE')", y compris ceux n'ayant a priori rien à
voir avec le profil (le seul Before() du repo vit dans
common.steps.ts, partagé par toutes les features).

Le seul hook du repo ne servait qu'à réinitialiser le profil "connecté"
courant entre scénarios. Remplacé par un reset explicite au tout début
du step "I am signed in as ...", le point d'entrée par lequel passe
systématiquement toute construction de profil — équivalent
fonctionnellement, sans avoir besoin d'enregistrer de hook du tout.
2026-08-19 12:07:33 +02:00
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