From 21cd8f014d04afa3d5b3e0d9ebd890613a0e4778 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sun, 6 Sep 2026 23:59:18 +0200 Subject: [PATCH] fix(auth): la deconnexion retombe sur / plutot que /login MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RequireAuth.tsx affiche deja la LandingPage publique pour un visiteur deconnecte exactement sur / (issue #41) — seul handleLogout naviguait encore explicitement vers /login. Change juste la destination de navigate() ; aucun autre changement necessaire. Scenario Cypress mis a jour en consequence (le pas existant "the URL should be the home page" suffit, pas besoin d'un nouveau pas). Verifie en local, suite complete : pnpm lint, pnpm --filter web build, pnpm run e2e (139/139, apres avoir nettoye un process vite zombie sur le port 5173 laisse par une precedente invocation cypress dans cette meme session — voir dev-environment-gotchas pour le detail). Co-Authored-By: Claude Sonnet 5 --- apps/web/cypress/e2e/auth.feature | 4 ++-- apps/web/src/layouts/AppLayout.tsx | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/apps/web/cypress/e2e/auth.feature b/apps/web/cypress/e2e/auth.feature index dc3763a..d92f617 100644 --- a/apps/web/cypress/e2e/auth.feature +++ b/apps/web/cypress/e2e/auth.feature @@ -51,7 +51,7 @@ Feature: Signup and login Then the login request should have been made And I should see "Email ou mot de passe incorrect" - Scenario: Logging out returns to the login page + Scenario: Logging out returns to the landing page Given I am signed in as "Alice" "Martin" And my household id is 1 And the planning request returns nothing @@ -60,4 +60,4 @@ Feature: Signup and login And I open the account menu And I click the button "Se déconnecter" Then the logout request should have been made - And the URL should include "/login" + And the URL should be the home page diff --git a/apps/web/src/layouts/AppLayout.tsx b/apps/web/src/layouts/AppLayout.tsx index 91c70c7..861ff59 100644 --- a/apps/web/src/layouts/AppLayout.tsx +++ b/apps/web/src/layouts/AppLayout.tsx @@ -201,12 +201,17 @@ function AccountMenu() { const { t } = useTranslation(); const [isOpen, setIsOpen] = useState(false); - /** Ends the session and returns to the login page. */ + /** + * Ends the session and returns to `/` — `RequireAuth` shows the public + * {@link LandingPage} there for a logged-out visitor (issue #41), so this + * naturally lands on the marketing page rather than straight back at the + * login form. + */ async function handleLogout() { setIsOpen(false); try { await logout(); - void navigate("/login"); + void navigate("/"); } catch (err) { // Rethrown as-is — `AuthContext`'s `logout` already documents itself // as throwing `ApiError` on failure; this handler just isn't allowed -- 2.45.2