Add Playwright E2E tests replacing Cypress with MSW integration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
64
tests/e2e/specs/discoverMap.spec.ts
Normal file
64
tests/e2e/specs/discoverMap.spec.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
// 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("Discover Map Page", () => {
|
||||
test.beforeEach(async ({ page, context }) => {
|
||||
await loginWithMSW(context);
|
||||
await page.goto("/discover/log/297310264/map");
|
||||
await expect(page.locator("#cy")).toBeVisible();
|
||||
});
|
||||
|
||||
test("page loads and cytoscape container exists", async ({ page }) => {
|
||||
await expect(page.locator("#cy")).toBeVisible();
|
||||
});
|
||||
|
||||
test("displays left sidebar buttons", async ({ page }) => {
|
||||
// Visualization Setting, Filter, Traces buttons
|
||||
await expect(
|
||||
page.locator(".material-symbols-outlined", { hasText: "track_changes" }),
|
||||
).toBeVisible();
|
||||
await expect(
|
||||
page.locator(".material-symbols-outlined", { hasText: "tornado" }),
|
||||
).toBeVisible();
|
||||
await expect(
|
||||
page.locator(".material-symbols-outlined", { hasText: "rebase" }),
|
||||
).toBeVisible();
|
||||
});
|
||||
|
||||
test("displays right sidebar Summary button", async ({ page }) => {
|
||||
await expect(page.locator("#sidebar_state")).toBeVisible();
|
||||
await expect(page.locator("#iconState")).toBeVisible();
|
||||
});
|
||||
|
||||
test("clicking Visualization Setting button toggles sidebar", async ({
|
||||
page,
|
||||
}) => {
|
||||
// Click the track_changes icon (Visualization Setting)
|
||||
await page
|
||||
.locator("span.material-symbols-outlined", { hasText: "track_changes" })
|
||||
.locator("..")
|
||||
.click();
|
||||
// SidebarView should open
|
||||
await expect(page.getByText("Visualization Setting").first()).toBeVisible();
|
||||
});
|
||||
|
||||
test("clicking Summary button toggles sidebar", async ({ page }) => {
|
||||
await page.locator("#iconState").click();
|
||||
// SidebarState should open with insights/stats
|
||||
await expect(page.getByText("Summary").first()).toBeVisible();
|
||||
});
|
||||
|
||||
test("clicking Traces button toggles sidebar", async ({ page }) => {
|
||||
await page
|
||||
.locator("span.material-symbols-outlined", { hasText: "rebase" })
|
||||
.locator("..")
|
||||
.click();
|
||||
// SidebarTraces should open
|
||||
await expect(page.getByText("Traces")).toBeVisible();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user