From d2557c14fa41a4dc796f65f1832b0d4b3bbeeb01 Mon Sep 17 00:00:00 2001 From: Git Agent Date: Sun, 30 Aug 2026 09:41:43 +0200 Subject: [PATCH] =?UTF-8?q?fix(web):=20login=20=E2=80=94=20premi=C3=A8re?= =?UTF-8?q?=20connexion=20utilisable=20quand=20le=20statut=20d'authentific?= =?UTF-8?q?ation=20est=20indisponible=20:=20l'appel=20de=20statut=20n'enri?= =?UTF-8?q?chit=20que=20l'=C3=A9cran=20d=C3=A9connect=C3=A9,=20l'erreur=20?= =?UTF-8?q?bloquante=20est=20retir=C3=A9e=20du=20catch,=20avec=20test=20de?= =?UTF-8?q?=20non-r=C3=A9gression=20LoginPageAuthStatusUnavailable=20(bug?= =?UTF-8?q?=20#51)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/pages/LoginPage.tsx | 2 +- .../pages/LoginPageAuthStatusUnavailable.test.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 apps/web/src/pages/LoginPageAuthStatusUnavailable.test.ts diff --git a/apps/web/src/pages/LoginPage.tsx b/apps/web/src/pages/LoginPage.tsx index 98de627..cbd3d66 100644 --- a/apps/web/src/pages/LoginPage.tsx +++ b/apps/web/src/pages/LoginPage.tsx @@ -24,7 +24,7 @@ export function LoginPage({ onSessionChange }: { onSessionChange: () => Promise< setEmail((current) => current || nextStatus.initialAdminEmail); }) .catch(() => { - if (alive) setError("Statut d'authentification indisponible."); + // Auth status only enriches the unauthenticated screen; login must remain usable without it. }); return () => { alive = false; diff --git a/apps/web/src/pages/LoginPageAuthStatusUnavailable.test.ts b/apps/web/src/pages/LoginPageAuthStatusUnavailable.test.ts new file mode 100644 index 0000000..492c5b3 --- /dev/null +++ b/apps/web/src/pages/LoginPageAuthStatusUnavailable.test.ts @@ -0,0 +1,14 @@ +import { readFileSync } from "node:fs"; +import { describe, expect, it } from "vitest"; + +describe("login page when auth status is unavailable", () => { + it("keeps the unauthenticated login screen usable without a blocking auth status error", () => { + const source = readFileSync(new URL("./LoginPage.tsx", import.meta.url), "utf8"); + + expect(source).toContain("
"); + expect(source).toContain('type="email" required'); + expect(source).toContain('type="password" required'); + expect(source).toContain('type="submit"'); + expect(source).not.toContain("Statut d'authentification indisponible"); + }); +});