batchCooking/apps/web/cypress/e2e
Nicolas 1bc9304cdc
All checks were successful
CI / lint (push) Successful in 4m35s
CI / build (push) Successful in 4m51s
CI / intent-service-test (push) Successful in 5m42s
CI / e2e (push) Successful in 10m29s
CI / test (push) Successful in 17m43s
feat(planning): glisser-déposer un reste sur un autre créneau
Dernière PR (4/4) du chantier « gestion des restes » (issue #34).

`@dnd-kit/core` (+ `@dnd-kit/utilities`) — première et seule utilisation
de DnD de l'app. `PlanningPage` monte un `<DndContext>` (Mouse + Touch +
Keyboard sensors, distance d'activation 5px pour ne pas voler le clic
« Jeter ») autour de la grille et du panier.

- `LeftoversBasket` : chaque ligne a une poignée `⠿` `useDraggable` — le
  nœud draggable est la poignée elle-même (petite), pas toute la `<li>`,
  pour qu'une détection de collision au pointeur (`pointerWithin`, repli
  `closestCenter` pour le clavier) résolve proprement vers la seule case
  sous le curseur. `data` porte `sourceItemId`/`recipeName`/`available`.
- `MealCell` : `useDroppable` (`data: { date, weekDay, meal }`),
  surbrillance `--drop-over` au survol. Un item « restes »
  (`sourceItem !== null`) porte un badge ♻️ sur sa pastille.
- Au drop, `onDragEnd` ouvre `LeftoverAssignDialog` (quantité, défaut =
  disponible, plafonné) → `POST /planning/items/leftover`
  (`apiClient.assignLeftover`) → nouvel item patché dans `planning.items`.

Tests : `planning-leftovers.feature` (Gherkin) — parcours complet drag →
confirmation quantité → pastille ♻️ visible → compteur du panier à jour ;
+ jet d'un reste depuis le panier. Le drag est piloté par événements
souris bruts (mousedown poignée → mousemove ×2 → mouseup cible).
Vérifié localement : 2/2, et aucune régression sur
`leftovers-basket.cy.ts` / `planning-page.cy.ts` / `planning.feature`.

i18n : `planning.leftovers.*` (badge, poignée, dialogue). Docs :
`frontend-architecture.md`.

Closes #34

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-06 00:47:49 +02:00
..
account.cy.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
account.feature refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
account.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
admin-catalog.cy.ts fix(admin): isole l'API admin sous /admin/api pour éviter la collision avec les pages front 2026-09-05 13:48:07 +02:00
admin-corrections.cy.ts fix(admin): isole l'API admin sous /admin/api pour éviter la collision avec les pages front 2026-09-05 13:48:07 +02:00
admin-dashboard.cy.ts fix(admin): isole l'API admin sous /admin/api pour éviter la collision avec les pages front 2026-09-05 13:48:07 +02:00
admin-layout.cy.ts fix(admin): isole l'API admin sous /admin/api pour éviter la collision avec les pages front 2026-09-05 13:48:07 +02:00
admin-login.feature refactor(admin): fusionne apps/admin-web dans apps/web sous /admin/* 2026-08-29 17:02:29 +02:00
admin-login.ts fix(admin): isole l'API admin sous /admin/api pour éviter la collision avec les pages front 2026-09-05 13:48:07 +02:00
auth.feature refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
auth.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
cooking-session-page.cy.ts feat(cooking-session): déplie une recette de l'onglet Recettes au lieu de rediriger 2026-09-04 23:08:47 +02:00
cooking-session.feature feat(cooking-session): déplie une recette de l'onglet Recettes au lieu de rediriger 2026-09-04 23:08:47 +02:00
cooking-session.ts feat(cooking-session): déplie une recette de l'onglet Recettes au lieu de rediriger 2026-09-04 23:08:47 +02:00
household-settings.cy.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
household-settings.feature fix(recipes): la source générique JSON-LD n'apparaît plus comme source 2026-08-20 15:10:51 +02:00
household-settings.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
layout.cy.ts feat(shopping-list): liste de courses agrégée depuis le planning (#73) 2026-08-22 22:45:06 +02:00
leftovers-basket.cy.ts feat(planning): panier des restes dans l'en-tête (lecture seule + jeter) 2026-09-06 00:16:00 +02:00
onboarding.feature fix(recipes): synchronise les sources en base au démarrage de l'image de prod 2026-08-20 13:48:29 +02:00
onboarding.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
planning-leftovers.feature feat(planning): glisser-déposer un reste sur un autre créneau 2026-09-06 00:47:49 +02:00
planning-leftovers.ts feat(planning): glisser-déposer un reste sur un autre créneau 2026-09-06 00:47:49 +02:00
planning-page.cy.ts feat(cooking): page /cuisiner + bouton "Commencer a cuisiner" 2026-08-28 19:06:24 +02:00
planning.feature feat(planning): sépare portions demandées et portions préparées 2026-09-05 23:29:58 +02:00
planning.ts feat(planning): sépare portions demandées et portions préparées 2026-09-05 23:29:58 +02:00
preferences.cy.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
preferences.feature refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
preferences.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
recipe-form.feature feat(recipes): permet d'ajouter des ingredients hors-catalogue 2026-08-28 23:36:42 +02:00
recipe-form.ts feat(recipes): permet d'ajouter des ingredients hors-catalogue 2026-08-28 23:36:42 +02:00
recipe-sources.feature test(recipes): fiabilise le scénario 3 pages (scroll réel + log de curseurs) 2026-09-05 20:45:58 +02:00
recipe-sources.ts test(recipes): fiabilise le scénario 3 pages (scroll réel + log de curseurs) 2026-09-05 20:45:58 +02:00
recipes.cy.ts fix(recipes): garde le popover de correction ouvert pendant la sélection d'un span 2026-09-05 21:01:22 +02:00
recipes.feature feat(recipes): refond le panneau de correction des métadonnées de tech-step 2026-09-05 00:22:01 +02:00
recipes.ts feat(recipes): refond le panneau de correction des métadonnées de tech-step 2026-09-05 00:22:01 +02:00
shopping-list.feature feat(shopping-list): liste de courses agrégée depuis le planning (#73) 2026-08-22 22:45:06 +02:00
shopping-list.ts feat(shopping-list): liste de courses agrégée depuis le planning (#73) 2026-08-22 22:45:06 +02:00
sidebar.cy.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +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 refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
user-preferences.feature refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00
user-preferences.ts refactor: sépare les tests Cypress en parcours utilisateur / layout / composants (#25) 2026-08-19 14:31:17 +02:00