Files
CPLv4.0/playwright/tests/pages/digitalOutputs/digitalOutputs.test.ts

145 lines
4.9 KiB
TypeScript

import { test, expect } from "@playwright/test";
import { headerTest } from "@/playwright/tests/components/header/headerTest";
import { navTest } from "@/playwright/tests/components/navigation/navTest";
import { footerTest } from "@/playwright/tests/components/footer/footerTest";
test.use({
viewport: {
height: 800,
width: 1280,
},
});
test("digitalOutputs", async ({ page }) => {
await page.goto("/dashboard");
// Gemeinsame Layout-Checks
await headerTest(page);
await navTest(page);
await footerTest(page);
await page.getByRole("link", { name: "Schaltausgänge" }).click();
await expect(page.locator("h1")).toBeVisible();
await expect(
page.locator("h2").filter({ hasText: "Schaltausgänge" }).locator("svg")
).toBeVisible();
await expect(
page.locator("h2").filter({ hasText: "Schaltausgänge" })
).toBeVisible();
await expect(
page.getByRole("cell", { name: "Ausgang", exact: true })
).toBeVisible();
await expect(page.getByRole("cell", { name: "Bezeichnung" })).toBeVisible();
await expect(page.getByRole("cell", { name: "Schalter" })).toBeVisible();
await expect(page.getByRole("cell", { name: "Aktion" })).toBeVisible();
await expect(
page.getByRole("cell", { name: "1", exact: true }).locator("svg")
).toBeVisible();
await expect(
page.getByRole("cell", { name: "1", exact: true })
).toBeVisible();
await expect(
page.getByRole("cell", { name: "2", exact: true })
).toBeVisible();
await expect(
page.getByRole("cell", { name: "3", exact: true })
).toBeVisible();
await expect(
page.getByRole("cell", { name: "4", exact: true })
).toBeVisible();
await expect(page.getByRole("cell", { name: "Ausgang1" })).toBeVisible();
await expect(page.getByRole("cell", { name: "Ausgang2" })).toBeVisible();
await expect(page.getByRole("cell", { name: "Ausgang3" })).toBeVisible();
await expect(page.getByRole("cell", { name: "Ausgang4" })).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang1" }).getByRole("cell").nth(2)
).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang2" }).getByRole("cell").nth(2)
).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang3" }).getByRole("cell").nth(2)
).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang4" }).getByRole("cell").nth(2)
).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang1" }).getByRole("cell").nth(3)
).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang2" }).getByRole("cell").nth(3)
).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang3" }).getByRole("cell").nth(3)
).toBeVisible();
await expect(
page.getByRole("row", { name: "Ausgang4" }).getByRole("cell").nth(3)
).toBeVisible();
await page
.getByRole("row", { name: "Ausgang1" })
.locator("svg")
.nth(1)
.click();
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- heading "Einstellungen Schaltausgang 1" [level=2]
- button "Modal schließen"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- text: "Bezeichnung:"
- textbox "z. B. Licht Relais 1"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(
`- button "Speichern"`
);
await page.getByRole("button", { name: "Modal schließen" }).click();
await page
.getByRole("row", { name: "Ausgang2" })
.locator("svg")
.nth(1)
.click();
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- heading "Einstellungen Schaltausgang 2" [level=2]
- button "Modal schließen"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- text: "Bezeichnung:"
- textbox "z. B. Licht Relais 1"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(
`- button "Speichern"`
);
await page.getByRole("button", { name: "Modal schließen" }).click();
await page
.getByRole("row", { name: "Ausgang3" })
.locator("svg")
.nth(1)
.click();
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- heading "Einstellungen Schaltausgang 3" [level=2]
- button "Modal schließen"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- text: "Bezeichnung:"
- textbox "z. B. Licht Relais 1"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(
`- button "Speichern"`
);
await page.getByRole("button", { name: "Modal schließen" }).click();
await page
.getByRole("row", { name: "Ausgang4" })
.locator("svg")
.nth(1)
.click();
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- heading "Einstellungen Schaltausgang 4" [level=2]
- button "Modal schließen"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(`
- text: "Bezeichnung:"
- textbox "z. B. Licht Relais 1"
`);
await expect(page.getByRole("main")).toMatchAriaSnapshot(
`- button "Speichern"`
);
await page.getByRole("button", { name: "Modal schließen" }).click();
});