Files
pleno-vue/tests/e2e/superuser-vehicles.smoke.spec.js
T
2026-07-06 13:59:40 +02:00

77 lines
2.9 KiB
JavaScript

import { expect, test } from "@playwright/test";
import { mockApi, primeMockSession } from "./support/network.js";
async function primeSuperuserSession(page) {
const token = "superuser-vehicles-token";
await primeMockSession(page, { token });
}
test.describe("Superuser vehicles smoke", () => {
test.describe.configure({ mode: "serial" });
test.beforeEach(async ({ page }) => {
await mockApi(page, {
authenticated: true,
permissions: ["superuser", "user"],
pos: true,
});
await primeSuperuserSession(page);
});
test("@smoke superuser vehicles route renders list without order-id errors", async ({ page }) => {
await page.goto("/superuser/vehicles");
await expect(page).toHaveURL(/\/superuser\/vehicles$/);
await expect(page.getByRole("heading", { name: /registrerede køretøjer|registered vehicles/i })).toBeVisible();
await expect(page.locator("body")).toContainText(/registrerede|registered/i);
await expect(page.locator("body")).not.toContainText(/Order ID is required/i);
});
test("superuser can add a vehicle after selecting a customer from searchable results", async ({ page }) => {
const createVehiclePayloads = [];
page.on("request", (request) => {
const url = new URL(request.url());
if (url.pathname.endsWith("/vehicles") && request.method() === "POST") {
createVehiclePayloads.push(request.postDataJSON());
}
});
await page.goto("/superuser/vehicles");
await page.getByTestId("superuser-vehicles-add").click();
await expect(page.getByTestId("superuser-add-vehicle-modal")).toBeVisible();
await page.getByTestId("superuser-add-vehicle-customer-input").fill("12345679");
await expect(page.getByTestId("superuser-add-vehicle-customer-option-0")).toBeVisible();
await page.getByTestId("superuser-add-vehicle-customer-option-0").click();
await expect(page.getByTestId("superuser-add-vehicle-customer-selected")).toContainText("#12345679");
await page.getByTestId("superuser-add-vehicle-registration").fill("ab12345");
await expect(page.getByTestId("superuser-add-vehicle-type")).toBeEnabled();
await page.getByTestId("superuser-add-vehicle-type").selectOption("53");
await page.getByTestId("superuser-add-vehicle-wash-subscription").check();
await page.getByTestId("superuser-add-vehicle-reference").fill("Fleet reference");
await Promise.all([
page.waitForResponse(
(response) => response.url().includes("/vehicles") && response.request().method() === "POST"
),
page.getByTestId("superuser-add-vehicle-submit").click(),
]);
expect(createVehiclePayloads).toEqual([
{
type: 53,
reg: "AB12345",
wash_subscription: true,
customer_id: 12345679,
reference: "Fleet reference",
},
]);
await expect(page.getByTestId("superuser-add-vehicle-modal")).toBeHidden();
await expect(page.getByTestId("user-vehicles-table")).toContainText("AB12345");
});
});