From c2dcff54456ecb04cadaa86b1915ef0ce1d09fc2 Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Fri, 20 Feb 2026 16:21:57 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(e2e)=20add=20test=20for=20401=20redir?= =?UTF-8?q?ect=20and=20re-login=20flow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ensures that when a user's session expires, they are redirected to /401, can log back in, and are then sent back to the page they were originally trying to access. --- .../__tests__/app-drive/redirect-401.spec.ts | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/frontend/apps/e2e/__tests__/app-drive/redirect-401.spec.ts diff --git a/src/frontend/apps/e2e/__tests__/app-drive/redirect-401.spec.ts b/src/frontend/apps/e2e/__tests__/app-drive/redirect-401.spec.ts new file mode 100644 index 00000000..a2f104ac --- /dev/null +++ b/src/frontend/apps/e2e/__tests__/app-drive/redirect-401.spec.ts @@ -0,0 +1,35 @@ +import test, { expect } from "@playwright/test"; +import { clearDb, keyCloakSignIn, login } from "./utils-common"; +import { createFolderInCurrentFolder } from "./utils-item"; +import { navigateToFolder } from "./utils-navigate"; + +test("Redirects to /401 when session cookies are cleared then re-login and get redirected to the folder", async ({ + page, + context, +}) => { + await clearDb(); + await page.goto("/"); + await keyCloakSignIn(page, "drive", "drive"); + + await createFolderInCurrentFolder(page, "Secret folder"); + await navigateToFolder(page, "Secret folder", ["My files", "Secret folder"]); + const folderUrl = page.url(); + + await context.clearCookies(); + + await page.reload(); + + await expect(page).toHaveURL(/.*\/401/, { timeout: 10000 }); + await expect( + page.getByText("You need to be logged in to access the documents."), + ).toBeVisible(); + + await page + .locator(".drive__generic-disclaimer") + .getByRole("button", { name: "Login" }) + .click(); + + await keyCloakSignIn(page, "drive", "drive", false); + + await expect(page).toHaveURL(folderUrl); +});