// The Lucia project. // Copyright 2026-2026 DSP, inc. All rights reserved. // Authors: // imacat.yang@dsp.im (imacat), 2026/03/22 import { test, expect } from "@playwright/test"; import { loginWithMSW } from "../helpers"; test.describe("Logout Flow", () => { test.beforeEach(async ({ context }) => { await loginWithMSW(context); }); test("shows account menu when head icon is clicked", async ({ page }) => { await page.goto("/files"); await expect(page.getByText("sample-process.xes").first()).toBeVisible(); // Click the head icon to open account menu await page.locator("#acct_mgmt_button").click(); await expect(page.locator("#account_menu")).toBeVisible(); await expect(page.locator("#greeting")).toContainText("Test Admin"); }); test("account menu shows admin management link for admin user", async ({ page, }) => { await page.goto("/files"); await expect(page.getByText("sample-process.xes").first()).toBeVisible(); await page.locator("#acct_mgmt_button").click(); await expect(page.locator("#account_menu")).toBeVisible(); // Admin user should see account management option await expect(page.locator("#btn_acct_mgmt")).toBeVisible(); }); test("account menu has logout button", async ({ page }) => { await page.goto("/files"); await expect(page.getByText("sample-process.xes").first()).toBeVisible(); await page.locator("#acct_mgmt_button").click(); await expect(page.locator("#btn_logout_in_menu")).toBeVisible(); }); test("clicking My Account navigates to /my-account", async ({ page }) => { await page.goto("/files"); await expect(page.getByText("sample-process.xes").first()).toBeVisible(); await page.locator("#acct_mgmt_button").click(); await page.locator("#btn_mang_ur_acct").click(); await expect(page).toHaveURL(/\/my-account/); }); test("clicking Account Management navigates to /account-admin", async ({ page, }) => { await page.goto("/files"); await expect(page.getByText("sample-process.xes").first()).toBeVisible(); await page.locator("#acct_mgmt_button").click(); await page.locator("#btn_acct_mgmt").click(); await expect(page).toHaveURL(/\/account-admin/); }); test("logout redirects to login page", async ({ page }) => { await page.goto("/files"); await expect(page.getByText("sample-process.xes").first()).toBeVisible(); await page.locator("#acct_mgmt_button").click(); await page.locator("#btn_logout_in_menu").click(); await expect(page).toHaveURL(/\/login/); }); });