Add Playwright database E2E inspections
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import { test, expect } from "playwright/test";
|
||||
|
||||
test("catalog maker shell loads without page errors", async ({ page }) => {
|
||||
const pageErrors = [];
|
||||
page.on("pageerror", (error) => pageErrors.push(error.message));
|
||||
|
||||
await page.goto("/");
|
||||
await expect(page.locator("#settingsButton")).toBeVisible();
|
||||
await expect(page.locator("#recordId")).toBeVisible();
|
||||
await expect(page.locator("#variantHeader")).toBeVisible();
|
||||
|
||||
await page.screenshot({ path: "test-results/catalog-maker-shell.png", fullPage: true });
|
||||
expect(pageErrors).toEqual([]);
|
||||
});
|
||||
|
||||
test("settings modal opens and shows local database controls", async ({ page }) => {
|
||||
await page.goto("/");
|
||||
await page.locator("#settingsButton").click();
|
||||
|
||||
await expect(page.locator("#settingsModal")).toBeVisible();
|
||||
await expect(page.locator("#localDbHost")).toBeVisible();
|
||||
await expect(page.locator("#testLocalDbButton")).toBeVisible();
|
||||
});
|
||||
@@ -0,0 +1,29 @@
|
||||
import { test, expect } from "playwright/test";
|
||||
|
||||
test.describe("database connection", () => {
|
||||
test("tests the configured Local DB connection", async ({ page }) => {
|
||||
await page.goto("/");
|
||||
await page.locator("#settingsButton").click();
|
||||
|
||||
await expect(page.locator('input[name="databaseMode"][value="local"]')).toBeChecked();
|
||||
await page.locator("#localDbHost").fill("127.0.0.1");
|
||||
await page.locator("#localDbPort").fill("3306");
|
||||
await page.locator("#localDbName").fill("9bplus");
|
||||
await page.locator("#localDbUser").fill("root");
|
||||
await page.locator("#localDbPassword").fill("root");
|
||||
|
||||
await page.locator("#testLocalDbButton").click();
|
||||
await expect(page.locator("#localDbTestResult")).toContainText("Connected:");
|
||||
});
|
||||
|
||||
test("loads manufacturers from Local DB without Live endpoint fallback", async ({ page }) => {
|
||||
const manufacturersResponse = page.waitForResponse("**/api/manufacturers");
|
||||
await page.goto("/");
|
||||
|
||||
const response = await manufacturersResponse;
|
||||
expect(response.ok()).toBeTruthy();
|
||||
const data = await response.json();
|
||||
expect(data.items.length).toBeGreaterThan(0);
|
||||
expect(data.items.some((item) => item.name === "La Sportiva")).toBeTruthy();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user