Dernière étape du plan « onglet Sources » : le sélecteur de recette du planning (`RecipePickerDialog`) gagne l'onglet « Sources », jusqu'ici volontairement exclu faute d'écran de revue à qui transmettre un item choisi (voir étape 3, #47). - Sélectionner un item déjà importé se comporte exactement comme choisir cette même recette depuis un onglet normal (résolue via `GET /recipes/:id`, direction vers l'étape « combien de portions ? » du dialogue, sans navigation). - Sélectionner un item pas encore importé bascule vers l'écran de revue existant (`ImportRecipePage`), avec le créneau du planning porté par la query string (`?planningDate=&planningWeekDay=&planningMeal=`). Un import réussi y ajoute alors automatiquement la recette fraîchement créée à ce créneau (`POST /planning/items`, avec les portions du formulaire) avant de revenir sur le planning — plutôt que d'atterrir sur la page de la recette comme le fait un import « classique ». - `RecipeSourcesPanel`/`SourceItemPreviewPanel` généralisés en conséquence : la première ne navigue plus elle-même vers la recette déjà importée (`onSelectImportedRecipe` renvoie l'id, chaque appelant décide), la seconde propage le créneau optionnel sur son lien d'import. Aucun changement backend : `POST /sources/:sourceKey/import/:externalId` et `POST /planning/items` existaient déjà et suffisent tels quels — une fois la recette importée, `GET /sources/:sourceKey/browse` la marque déjà `alreadyImported` automatiquement (logique déjà couverte par `sources.test.ts`). 282 tests API toujours au vert, aucune régression. Tests : - Cypress : nouveau scénario Gherkin bout-en-bout (`cypress/e2e/planning.feature`/`planning.ts`) — ouvrir le sélecteur depuis un créneau vide, parcourir Sources, importer un item non résolu (ingrédient à compléter compris), vérifier que la requête d'ajout au planning porte bien le bon créneau/les bonnes portions, que la recette apparaît dans la bonne case de la grille après le retour sur "/", puis que rebrowser la source la marque désormais comme déjà importée. Suite : plan « onglet Sources » terminé (étapes 1 à 4). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
40 lines
2 KiB
Gherkin
40 lines
2 KiB
Gherkin
Feature: Adding a recipe to the planning
|
|
As a signed-in user
|
|
I want to add a recipe to a planning slot even when I haven't imported it yet
|
|
So that browsing an external source and planning it is a single trip
|
|
|
|
Background:
|
|
Given I am signed in as "Alice" "Martin"
|
|
And my household id is 1
|
|
And today is frozen at "2026-08-17T09:00:00.000Z"
|
|
And the household request returns no household
|
|
And the recipe catalog contains nothing
|
|
And the ingredient and diet catalog is available for import
|
|
And the sources reference list has options
|
|
And the household has enabled TheMealDB
|
|
And browsing TheMealDB returns some items
|
|
And the planning request reflects whatever's been added so far
|
|
|
|
Scenario: Adds a not-yet-imported source item to a planning slot, importing it on the way
|
|
Given previewing TheMealDB item "9999" is available
|
|
And importing the previewed item will succeed and return id 99
|
|
And adding the imported recipe to the planning will succeed
|
|
When I visit "/"
|
|
And I click the add button for the first empty planning slot
|
|
And I click the button "Sources"
|
|
And I click the source item "Fish Pie"
|
|
And I click the link "Importer cette recette"
|
|
Then I should see "Cette recette sera automatiquement ajoutée à votre planning une fois importée."
|
|
|
|
When I choose an ingredient for the unresolved line "some mystery paste"
|
|
And I select the ingredient "Sel" from the picker
|
|
And I select unit "unité" for the first ingredient
|
|
And I fill in the last ingredient's quantity with "1" and unit "unité"
|
|
And I click the button "Importer"
|
|
Then the planning add request should have included recipe 99, weekDay "lundi", meal "petit-dejeuner", and portions 4
|
|
And the URL should be the home page
|
|
And the recipe "Fish Pie" should appear in the first planning slot with 4 portions
|
|
|
|
When I click the add button for the first empty planning slot
|
|
And I click the button "Sources"
|
|
Then the source item "Fish Pie" should be marked as already imported
|