Commit graph

1 commit

Author SHA1 Message Date
Imugiii
88c987c2b2 fix(borne): persiste et garde le mode de consommation (corrige 422 INVALID_SERVICE_MODE au paiement)
All checks were successful
CI / secret-scan (pull_request) Successful in 10s
CI / php-lint (pull_request) Successful in 24s
CI / static-tests (pull_request) Successful in 48s
CI / js-tests (pull_request) Successful in 30s
CI / php-lint (push) Successful in 26s
CI / static-tests (push) Successful in 1m11s
CI / js-tests (push) Successful in 34s
CI / secret-scan (push) Successful in 11s
Le paiement borne echouait en POST /api/orders -> 422 INVALID_SERVICE_MODE car le
mode de consommation (sur place / a emporter) n'atteignait jamais localStorage : la
1re page post-accueil (categories.html) ne chargeait pas nav.js, donc le ?mode= recu
de l'accueil n'etait pas persiste, et ses cartes statiques pointaient vers products.html
sans &mode=. Au paiement, mapServiceMode(null) -> service_mode null -> rejet serveur ;
le badge affichait en plus un faux 'Sur place' qui masquait l'absence de mode.

- categories.html : charge nav.js -> syncModeFromURL persiste le mode des l'etape
  categories (cause racine du 422 ; sans ca la garde ci-dessous bouclerait).
- nav.js : needsModeRedirect (helper pur) renvoie a l'accueil si une page hors accueil
  n'a pas de mode valide memorise ; modeLabel ne ment plus (vide si inconnu) ; listener
  DOMContentLoaded garde derriere typeof document -> module importable en test pur.
- page-payment.js : garde finale dans startCheckout (pas de soumission sans mode valide,
  retour accueil, panier conserve) + libelle recap honnete.
- tests/js/nav.test.js : table de verite des helpers + regression (categories.html charge nav.js).

Revue bmad-compliance : regression de flux normal identifiee (must_fix) corrigee. 92 tests JS verts.
2026-06-22 13:41:18 +00:00