77 lines
2.9 KiB
JavaScript
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");
|
|
});
|
|
});
|