test(e2e): reconcile shell and smoke consumers with approved lifetime and locale contracts

This commit is contained in:
cesnimda
2026-10-21 12:48:44 +02:00
parent 32e464f612
commit 508d68e16d
5 changed files with 316 additions and 12 deletions
+11 -1
View File
@@ -40,6 +40,10 @@ async function loginAs(page: Page, email: string, password: string) {
await page.getByLabel("Current password").fill(password);
await page.getByRole("button", { name: "Sign in", exact: true }).click();
await expect(page).toHaveURL(/\/dashboard$/);
if (email === "e2e@example.test") {
await setEnglishPreference(page);
await page.reload();
}
await expect(page.getByRole("heading", { name: "Dashboard", exact: true })).toBeVisible();
}
@@ -49,6 +53,7 @@ async function login(page: Page) {
async function loginForApiSetup(page: Page) {
expect((await page.request.post(`${apiUrl}/auth/login`, { data: { email: "e2e@example.test", password: "E2ePassword123!" } })).status()).toBe(200);
await setEnglishPreference(page);
}
async function csrfHeader(page: Page) {
@@ -59,6 +64,11 @@ async function csrfHeader(page: Page) {
return { "X-CSRF-TOKEN": cookie!.value, "X-Session-Context": me.sessionContext };
}
async function setEnglishPreference(page: Page) {
const headers = await csrfHeader(page);
expect((await page.request.put(`${apiUrl}/auth/preferences/language`, { headers, data: { language: "en" } })).status()).toBe(204);
}
test.beforeEach(async ({ page }) => {
await page.addInitScript(() => window.localStorage.setItem("uiLanguage", "en"));
});
@@ -117,7 +127,7 @@ test("login establishes an authenticated session", async ({ page }) => {
await login(page);
await expect(page.getByText("e2e@example.test").first()).toBeVisible();
await expect(page.getByTestId("admin-version-badge")).toHaveText("ve2e-verification");
await expect(page.getByLabel("Application version e2e-verification, commit e2e1234")).toBeVisible();
await expect(page.getByRole("img", { name: "Application version e2e-verification, commit e2e1234", exact: true })).toBeVisible();
await page.getByRole("button", { name: "Notifications" }).click();
await expect(page.getByLabel("Notifications panel")).toBeVisible();