All checks were successful
Nouvel ordre : régime → allergènes (les deux « préférences ») → foyer → sources. L'étape sources devient la dernière et n'est atteinte que si l'étape foyer vient de **créer** un foyer — rejoindre ou passer termine le wizard vers `/` (un foyer rejoint a déjà ses sources ; un foyer passé n'a rien à quoi les rattacher). - `onboarding-steps.ts` (nouveau) : séquence des étapes + `onboardingStepIndicator()` en un seul endroit. Les compteurs « Étape N sur M » étaient codés en dur page par page, ce qu'un réordonnancement cassait. régime/allergènes/foyer sont en amont du choix « créer vs rejoindre/passer » donc affichent « sur 3 » ; seule l'étape sources, jamais atteinte hors du chemin à 4 étapes, affiche « 4 sur 4 ». - `OnboardingDietPage` → enchaîne sur `/onboarding/allergenes`. - `OnboardingAllergensPage` → enchaîne sur `/onboarding/foyer` ; bouton « Continuer » (plus « Terminer ») ; suppression du `getCurrentHouse()` + `totalSteps` dynamique, devenus inutiles maintenant que cette étape précède le foyer. - `OnboardingHouseholdPage` → `goToNextStep(createdHousehold)` : `/onboarding/sources` seulement si créé, sinon `/`. `JoinHouseholdForm`/`SkipButton`/branche défensive « déjà un foyer » terminent vers `/`. - `OnboardingSourcesPage` → dernière étape : submit, court-circuit « aucune source » et catch vont tous vers `/` ; bouton « Terminer ». - `App.tsx` : blocs `<Route>` réordonnés + commentaire de doc du groupe. - `specs/frontend-architecture.md` : ordre, diagramme mermaid, condition sources. Tests : `onboarding.feature` réécrit — 4 parcours (walk-through complet avec foyer créé + sources ; préférences + foyer passés ; foyer créé sans source implémentée → étape sources auto-sautée ; foyer rejoint → pas de sources), compteurs vérifiés sur chaque chemin. `pnpm lint` / `pnpm build` verts ; Cypress local : onboarding 4/4, régression auth/preferences/household-settings 16/16. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
102 lines
4.8 KiB
Gherkin
102 lines
4.8 KiB
Gherkin
Feature: Onboarding wizard
|
|
As a newly signed-up user
|
|
I want to set my preferences (diet + allergens), then my household
|
|
So that my profile is ready before I start planning meals
|
|
|
|
# Order since #129: compte -> régime -> allergènes -> foyer -> sources,
|
|
# and the sources step only when the foyer step *created* a household
|
|
# (joining one or skipping ends the wizard at the home page).
|
|
|
|
Background:
|
|
Given the planning request returns nothing
|
|
|
|
Scenario: Walks through every step, creating a household (which surfaces the sources step), and lands on the home page
|
|
Given the diets reference list has options
|
|
And selecting the diet will succeed
|
|
And the household request returns no household
|
|
And the allergies reference list has options
|
|
And updating allergies will succeed
|
|
And creating a household will succeed
|
|
And the sources reference list has options
|
|
And the household's enabled sources are empty
|
|
And saving the source selection will succeed
|
|
And I have signed up
|
|
Then the URL should include "/onboarding/regime"
|
|
And I should see "Étape 1 sur 3"
|
|
When I select "Végétarien" from the "diet" field
|
|
And I click the button "Continuer"
|
|
Then the diet update request should have been made with diet id 2
|
|
And the URL should include "/onboarding/allergenes"
|
|
And I should see "Étape 2 sur 3"
|
|
And I should see the section "Allergies"
|
|
And I should see the section "Intolérances"
|
|
When I check the checkbox "Arachides"
|
|
And I click the button "Continuer"
|
|
Then the allergies update request should have been made with allergy id 1
|
|
And the URL should include "/onboarding/foyer"
|
|
And I should see "Étape 3 sur 3"
|
|
When I fill in the "houseName" field with "Chez Alice"
|
|
And I click the button "Créer"
|
|
Then the household creation request should have been made with name "Chez Alice"
|
|
And the URL should include "/onboarding/sources"
|
|
And I should see "Étape 4 sur 4"
|
|
And I should see the section "Sources disponibles"
|
|
And I should see "TheMealDB"
|
|
When I check the checkbox "TheMealDB"
|
|
And I click the button "Terminer"
|
|
Then the source selection update request should have been made with source id 1
|
|
And the URL should be the home page
|
|
And I should see the heading "Planning de la semaine"
|
|
|
|
Scenario: Lets the preferences steps be skipped without changing anything, then skips the household step too
|
|
Given the diets reference list is empty
|
|
And selecting the diet will succeed
|
|
And the household request returns no household
|
|
And the allergies reference list is empty
|
|
And updating allergies will succeed
|
|
And I have signed up
|
|
Then the URL should include "/onboarding/regime"
|
|
When I click the button "Continuer"
|
|
Then the diet update request should have been made with no diet id
|
|
And the URL should include "/onboarding/allergenes"
|
|
When I click the button "Continuer"
|
|
Then the allergies update request should have been made with no allergy ids
|
|
And the URL should include "/onboarding/foyer"
|
|
When I click the button "Passer cette étape"
|
|
Then the URL should be the home page
|
|
|
|
Scenario: Creating a household with no sources implemented ends the wizard through the silently-skipped sources step
|
|
Given the diets reference list is empty
|
|
And selecting the diet will succeed
|
|
And the household request returns no household
|
|
And creating a household will succeed
|
|
And the sources reference list is empty
|
|
And the allergies reference list is empty
|
|
And updating allergies will succeed
|
|
And I have signed up
|
|
When I click the button "Continuer"
|
|
Then the URL should include "/onboarding/allergenes"
|
|
When I click the button "Continuer"
|
|
Then the URL should include "/onboarding/foyer"
|
|
When I fill in the "houseName" field with "Chez Alice"
|
|
And I click the button "Créer"
|
|
Then the household creation request should have been made with name "Chez Alice"
|
|
And the URL should be the home page
|
|
|
|
Scenario: Joining an existing household skips the sources step entirely and ends the wizard
|
|
Given the diets reference list is empty
|
|
And selecting the diet will succeed
|
|
And the household request returns no household
|
|
And joining a household will succeed
|
|
And the sources reference list is empty
|
|
And the allergies reference list is empty
|
|
And updating allergies will succeed
|
|
And I have signed up
|
|
When I click the button "Continuer"
|
|
Then the URL should include "/onboarding/allergenes"
|
|
When I click the button "Continuer"
|
|
Then the URL should include "/onboarding/foyer"
|
|
When I fill in the "inviteCode" field with "abcd2345"
|
|
And I click the button "Rejoindre"
|
|
Then the household join request should have been made with invite code "ABCD2345"
|
|
And the URL should be the home page
|