66 lines
2.8 KiB
JavaScript
66 lines
2.8 KiB
JavaScript
import { expect, test } from "@playwright/test";
|
|
import { mockApi, primeMockSession } from "./support/network.js";
|
|
|
|
async function primeSuperuserSession(page) {
|
|
await primeMockSession(page, { token: "superuser-edge-gateway-routes-token" });
|
|
}
|
|
|
|
test.describe("Edge gateway routing and fleet navigation", () => {
|
|
test.beforeEach(async ({ page }) => {
|
|
await mockApi(page, {
|
|
authenticated: true,
|
|
permissions: ["superuser", "user"],
|
|
});
|
|
await primeSuperuserSession(page);
|
|
});
|
|
|
|
test("redirects canonical detail routes onto overview", async ({ page }) => {
|
|
await page.goto("/superuser/gateways/701");
|
|
|
|
await expect(page).toHaveURL(/\/superuser\/gateways\/701\/overview$/);
|
|
await expect(page.getByTestId("gateway-detail-header")).toContainText("CPH Edge 01");
|
|
await expect(page.getByTestId("gateway-tab-nav")).toBeVisible();
|
|
});
|
|
|
|
test("redirects legacy sub-page URLs onto the mapped v2 route", async ({ page }) => {
|
|
await page.goto("/superuser/gateways/701/configure");
|
|
|
|
await expect(page).toHaveURL(/\/superuser\/gateways\/701\/inventory$/);
|
|
await expect(page.getByTestId("gateway-inventory-page")).toBeVisible();
|
|
});
|
|
|
|
test("shows the unavailable state for unknown detail routes", async ({ page }) => {
|
|
await page.goto("/superuser/gateways/999999/overview");
|
|
|
|
await expect(page).toHaveURL(/\/superuser\/gateways\/999999\/overview$/);
|
|
await expect(page.getByTestId("gateway-unavailable-state")).toContainText("999999");
|
|
});
|
|
|
|
test("filters the fleet roster with search and summary chips", async ({ page }) => {
|
|
await page.goto("/superuser/gateways");
|
|
|
|
await page.getByTestId("gateway-fleet-search").fill("ode");
|
|
await expect(page.getByTestId("gateway-fleet-item-702")).toBeVisible();
|
|
await expect(page.getByTestId("gateway-fleet-item-701")).toHaveCount(0);
|
|
|
|
await page.getByTestId("gateway-fleet-search").fill("");
|
|
await page.getByTestId("gateway-summary-offline").click();
|
|
await expect(page.getByTestId("gateway-fleet-item-702")).toBeVisible();
|
|
await expect(page.getByTestId("gateway-fleet-item-701")).toHaveCount(0);
|
|
});
|
|
|
|
test("keeps the department workspace on the safe subset and links into the full page", async ({ page }) => {
|
|
await page.goto("/superuser/departments/1/gateways");
|
|
|
|
await expect(page.getByTestId("edge-gateway-workspace")).toBeVisible();
|
|
await expect(page.getByTestId("gateway-fleet-item-701")).toBeVisible();
|
|
await expect(page.getByTestId("gateway-tab-manage")).toHaveCount(0);
|
|
await expect(page.getByTestId("gateway-operation-uninstall")).toHaveCount(0);
|
|
|
|
await page.getByTestId("gateway-open-full-page").click();
|
|
|
|
await expect(page).toHaveURL(/\/superuser\/gateways\/701\/overview$/);
|
|
await expect(page.getByTestId("gateway-detail-header")).toContainText("CPH Edge 01");
|
|
});
|
|
});
|