playwright: Einstellungen Seite
This commit is contained in:
@@ -6,6 +6,6 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false
|
|||||||
NEXT_PUBLIC_EXPORT_STATIC=false
|
NEXT_PUBLIC_EXPORT_STATIC=false
|
||||||
NEXT_PUBLIC_USE_CGI=false
|
NEXT_PUBLIC_USE_CGI=false
|
||||||
# App-Versionsnummer
|
# App-Versionsnummer
|
||||||
NEXT_PUBLIC_APP_VERSION=1.6.727
|
NEXT_PUBLIC_APP_VERSION=1.6.728
|
||||||
NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter)
|
NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter)
|
||||||
|
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL
|
|||||||
NEXT_PUBLIC_EXPORT_STATIC=true
|
NEXT_PUBLIC_EXPORT_STATIC=true
|
||||||
NEXT_PUBLIC_USE_CGI=true
|
NEXT_PUBLIC_USE_CGI=true
|
||||||
# App-Versionsnummer
|
# App-Versionsnummer
|
||||||
NEXT_PUBLIC_APP_VERSION=1.6.727
|
NEXT_PUBLIC_APP_VERSION=1.6.728
|
||||||
NEXT_PUBLIC_CPL_MODE=production
|
NEXT_PUBLIC_CPL_MODE=production
|
||||||
@@ -1,3 +1,8 @@
|
|||||||
|
## [1.6.728] – 2025-08-14
|
||||||
|
|
||||||
|
- playwright: test Reihenfolge
|
||||||
|
|
||||||
|
---
|
||||||
## [1.6.727] – 2025-08-14
|
## [1.6.727] – 2025-08-14
|
||||||
|
|
||||||
- playwright: Reihenfolge
|
- playwright: Reihenfolge
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "cpl-v4",
|
"name": "cpl-v4",
|
||||||
"version": "1.6.727",
|
"version": "1.6.728",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "cpl-v4",
|
"name": "cpl-v4",
|
||||||
"version": "1.6.727",
|
"version": "1.6.728",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource/roboto": "^5.1.0",
|
"@fontsource/roboto": "^5.1.0",
|
||||||
"@headlessui/react": "^2.2.4",
|
"@headlessui/react": "^2.2.4",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "cpl-v4",
|
"name": "cpl-v4",
|
||||||
"version": "1.6.727",
|
"version": "1.6.728",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import { test } from "../fixtures";
|
import { test } from "../fixtures";
|
||||||
import { runDashboardTest } from "./dashboardTest";
|
import { runDashboardTest } from "./dashboardTest";
|
||||||
import { runAnalogInputsTest } from "./analogInputsTest";
|
import { runAnalogInputsTest } from "./analogInputsTest";
|
||||||
|
import { runSettingsPageTest } from "./settingsPageTest";
|
||||||
|
|
||||||
test("Dashboard und AnalogInputs", async ({ page }) => {
|
test("Dashboard, AnalogInputs und SettingsPage", async ({ page }) => {
|
||||||
await runDashboardTest(page);
|
await runDashboardTest(page);
|
||||||
await runAnalogInputsTest(page);
|
await runAnalogInputsTest(page);
|
||||||
|
await runSettingsPageTest(page);
|
||||||
});
|
});
|
||||||
|
|||||||
183
playwright/tests/settingsPageTest.ts
Normal file
183
playwright/tests/settingsPageTest.ts
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
import { expect } from "@playwright/test";
|
||||||
|
import type { Page } from "@playwright/test";
|
||||||
|
|
||||||
|
export async function runSettingsPageTest(page: Page) {
|
||||||
|
await page.goto("http://localhost:3000/einstellungen");
|
||||||
|
await expect(
|
||||||
|
page.getByRole("heading", { name: "Meldestation" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByRole("img", { name: "TALAS Logo" })).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("img", { name: "Logo", exact: true })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByRole("link", { name: "Übersicht" })).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("link", { name: "Kabelüberwachung" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("link", { name: "Meldungseingänge" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("link", { name: "Schaltausgänge" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("link", { name: "Messwerteingänge" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByRole("link", { name: "Berichte" })).toBeVisible();
|
||||||
|
await expect(page.getByRole("link", { name: "System" })).toBeVisible();
|
||||||
|
await expect(page.getByRole("link", { name: "Einstellungen" })).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^Littwin Systemtechnik GmbH & Co\. KG$/ })
|
||||||
|
.locator("svg")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Littwin Systemtechnik GmbH &")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^Telefon: 04402 972577-0$/ })
|
||||||
|
.locator("svg")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Telefon: 04402 972577-")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^kontakt@littwin-systemtechnik\.de$/ })
|
||||||
|
.locator("svg")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("kontakt@littwin-systemtechnik")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^Handbücher$/ })
|
||||||
|
.locator("svg")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Handbücher", { exact: true })).toBeVisible();
|
||||||
|
await page.getByText("Handbücher", { exact: true }).click();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("heading", { name: "PDF Handbücher" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("KUE705FO.PDF")).toBeVisible();
|
||||||
|
await page.getByRole("button").filter({ hasText: /^$/ }).click();
|
||||||
|
await page.getByRole("button", { name: "Allgemeine Einstellungen" }).click();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: "Allgemeine Einstellungen" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("heading", { name: "Allgemeine Einstellungen" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Name:")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^Name:$/ })
|
||||||
|
.getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("MAC Adresse 1:")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: "Systemzeit übernehmen" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("IP:")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.locator("div").filter({ hasText: /^IP:$/ }).getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Subnet:")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^Subnet:$/ })
|
||||||
|
.getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Gateway:")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^Gateway:$/ })
|
||||||
|
.getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: "Neustart CPL" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByRole("button", { name: "Speichern" })).toBeVisible();
|
||||||
|
await page.getByRole("button", { name: "OPCUA" }).click();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("img", { name: "OPCUA Logo" }).first()
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("img", { name: "OPCUA Logo" }).nth(1)
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Server Status:")).toBeVisible();
|
||||||
|
await expect(page.getByRole("button", { name: "Aktiviert" })).toBeVisible();
|
||||||
|
await expect(page.getByText("OPCUA Zustand")).toBeVisible();
|
||||||
|
await expect(page.getByText("1")).toBeVisible();
|
||||||
|
await expect(page.getByText("Nodeset Name")).toBeVisible();
|
||||||
|
await expect(page.getByText("Aktuelle OPC-Clients")).toBeVisible();
|
||||||
|
await expect(page.getByText("0", { exact: true })).toBeVisible();
|
||||||
|
await page.getByRole("button", { name: "Datenbank" }).click();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("heading", { name: "Datenbank Einstellungen" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: "Meldungen löschen" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: "Messwerte Logger löschen" })
|
||||||
|
).toBeVisible();
|
||||||
|
await page.getByRole("button", { name: "NTP" }).click();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("heading", { name: "NTP Einstellungen" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("NTP Server 1")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^NTP Server 1$/ })
|
||||||
|
.getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("NTP Server 3")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^NTP Server 3$/ })
|
||||||
|
.getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("NTP Server 2")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^NTP Server 2$/ })
|
||||||
|
.getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("Zeitzone")).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.locator("div")
|
||||||
|
.filter({ hasText: /^Zeitzone$/ })
|
||||||
|
.getByRole("textbox")
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByText("NTP aktiv:")).toBeVisible();
|
||||||
|
await expect(page.getByRole("checkbox")).toBeVisible();
|
||||||
|
await expect(page.getByRole("button", { name: "Speichern" })).toBeVisible();
|
||||||
|
await page.getByRole("button", { name: "Benutzerverwaltung" }).click();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("heading", { name: "Login Admin-Bereich" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("textbox", { name: "Benutzername" })
|
||||||
|
).toBeVisible();
|
||||||
|
await expect(page.getByRole("textbox", { name: "Passwort" })).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: "Admin anmelden" })
|
||||||
|
).toBeVisible();
|
||||||
|
await page.getByRole("textbox", { name: "Benutzername" }).click();
|
||||||
|
await page.getByRole("textbox", { name: "Benutzername" }).fill("admin");
|
||||||
|
await page.getByRole("textbox", { name: "Passwort" }).click();
|
||||||
|
await page.getByRole("textbox", { name: "Passwort" }).fill("admin");
|
||||||
|
await page.getByRole("button", { name: "Admin anmelden" }).click();
|
||||||
|
await expect(page.getByText("Login erfolgreich!")).toBeVisible();
|
||||||
|
await expect(page.getByRole("button", { name: "Abmelden" })).toBeVisible();
|
||||||
|
await expect(
|
||||||
|
page.getByRole("button", { name: "Admin anmelden" })
|
||||||
|
).toBeVisible();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user