Files
pleno-vue/tests/e2e/userVehicles.spec.ts
T

48 lines
1.5 KiB
TypeScript

import { expect, test } from "@playwright/test";
import { loginAsUser } from "./fixtures";
const json = (body, status = 200) => ({
status,
contentType: "application/json",
body: JSON.stringify(body),
});
const suppressVersionCheck = async (page) => {
await page.addInitScript(() => {
window.localStorage.setItem("lastVersionCheck", String(Date.now()));
});
await page.route(/\/worker\/version(\?.*)?$/i, async (route) => {
await route.fulfill(
json({
data: {
version: "test-build",
},
})
);
});
};
test("[PAGES][User][/user/vehicles] shows the current vehicles overview shell", async ({ page }) => {
await suppressVersionCheck(page);
await loginAsUser(page);
await page.goto("/user/vehicles");
await expect(page.getByTestId("user-vehicles-add")).toBeVisible();
await expect(page.getByTestId("user-vehicles-table")).toBeVisible();
});
test("[PAGES][User][/user/vehicles] opens the add-vehicle dialog", async ({ page }) => {
await suppressVersionCheck(page);
await loginAsUser(page);
await page.goto("/user/vehicles");
await page.getByTestId("user-vehicles-add").click();
const dialog = page.getByRole("dialog");
await expect(dialog).toBeVisible();
await expect(dialog.getByRole("heading", { name: /opret/i })).toBeVisible();
await expect(dialog.locator("label").filter({ hasText: /^Type$/ })).toBeVisible();
await expect(dialog.getByRole("button", { name: /gem/i })).toBeVisible();
await expect(dialog.getByRole("button", { name: /annuller/i })).toBeVisible();
});