// 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("Navigation and Routing", () => { test("redirects / to /files when logged in", async ({ page, context, }) => { await loginWithMSW(context); await page.goto("/"); await expect(page).toHaveURL(/\/files/); }); test("shows 404 page for unknown routes", async ({ page, context }) => { await loginWithMSW(context); await page.goto("/nonexistent-page"); await expect(page.getByText("404")).toBeVisible(); }); test("navbar shows correct view name", async ({ page, context }) => { await loginWithMSW(context); await page.goto("/files"); await expect(page.getByText("sample-process.xes").first()).toBeVisible(); await expect(page.locator("#nav_bar")).toBeVisible(); await expect(page.locator("#nav_bar h2")).toContainText("FILES"); }); test("navbar shows back arrow on non-files pages", async ({ page, context, }) => { await loginWithMSW(context); await page.goto("/discover/log/1/map"); // Back arrow should be visible on discover pages await expect(page.locator("#backPage")).toBeVisible(); }); test("navbar tabs are clickable on discover page", async ({ page, context, }) => { await loginWithMSW(context); await page.goto("/discover/log/1/map"); // Discover navbar should show MAP, CONFORMANCE, PERFORMANCE tabs await expect( page.locator(".nav-item", { hasText: "MAP" }), ).toBeVisible(); await expect( page.locator(".nav-item", { hasText: "CONFORMANCE" }), ).toBeVisible(); await expect( page.locator(".nav-item", { hasText: "PERFORMANCE" }), ).toBeVisible(); // Click CONFORMANCE tab await page.locator(".nav-item", { hasText: "CONFORMANCE" }).click(); await expect(page).toHaveURL(/\/conformance/); // Click PERFORMANCE tab await page.locator(".nav-item", { hasText: "PERFORMANCE" }).click(); await expect(page).toHaveURL(/\/performance/); // Click MAP tab to go back await page.locator(".nav-item", { hasText: "MAP" }).click(); await expect(page).toHaveURL(/\/map/); }); test("login page is accessible at /login", async ({ page }) => { await page.goto("/login"); await expect(page.getByRole("heading", { name: "LOGIN" }).first()).toBeVisible(); }); });