From 7fe04f55fe78aeca74689d50cbf93c6b9f2cbf45 Mon Sep 17 00:00:00 2001 From: ISA Date: Thu, 11 Sep 2025 08:38:00 +0200 Subject: [PATCH] test: layout header, footer and sidebar --- .env.development | 2 +- .env.production | 2 +- CHANGELOG.md | 5 +++++ package-lock.json | 4 ++-- package.json | 2 +- .../tests/components/footer/footerTest.ts | 14 +++++++++++++ .../tests/components/header/headerTest.ts | 21 +++++++++++++++++++ .../tests/components/navigation/navTest.ts | 20 ++++++++++++++++++ 8 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 playwright/tests/components/footer/footerTest.ts create mode 100644 playwright/tests/components/header/headerTest.ts create mode 100644 playwright/tests/components/navigation/navTest.ts diff --git a/.env.development b/.env.development index 89493c3..a7780fd 100644 --- a/.env.development +++ b/.env.development @@ -6,6 +6,6 @@ NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START=false NEXT_PUBLIC_EXPORT_STATIC=false NEXT_PUBLIC_USE_CGI=false # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.6.905 +NEXT_PUBLIC_APP_VERSION=1.6.906 NEXT_PUBLIC_CPL_MODE=json # json (Entwicklungsumgebung) oder jsSimulatedProd (CPL ->CGI-Interface-Simulator) oder production (CPL-> CGI-Interface Platzhalter) diff --git a/.env.production b/.env.production index 8055028..ca72080 100644 --- a/.env.production +++ b/.env.production @@ -5,5 +5,5 @@ NEXT_PUBLIC_CPL_API_PATH=/CPL NEXT_PUBLIC_EXPORT_STATIC=true NEXT_PUBLIC_USE_CGI=true # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.6.905 +NEXT_PUBLIC_APP_VERSION=1.6.906 NEXT_PUBLIC_CPL_MODE=production \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index b6b8144..602b110 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## [1.6.906] – 2025-09-11 + +- fix: logo und tests WIP + +--- ## [1.6.905] – 2025-09-11 - style: header, navigation und _app.tsx diff --git a/package-lock.json b/package-lock.json index ada8682..e09619e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cpl-v4", - "version": "1.6.905", + "version": "1.6.906", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cpl-v4", - "version": "1.6.905", + "version": "1.6.906", "dependencies": { "@emotion/react": "^11.13.0", "@emotion/styled": "^11.13.0", diff --git a/package.json b/package.json index e65b5f4..2e54e99 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cpl-v4", - "version": "1.6.905", + "version": "1.6.906", "private": true, "scripts": { "dev": "next dev -p 3000", diff --git a/playwright/tests/components/footer/footerTest.ts b/playwright/tests/components/footer/footerTest.ts new file mode 100644 index 0000000..53004a7 --- /dev/null +++ b/playwright/tests/components/footer/footerTest.ts @@ -0,0 +1,14 @@ +import { Page, expect } from "@playwright/test"; + +/** + * Footer assertions. + */ +export async function footerTest(page: Page) { + await expect(page.getByText(/Littwin Systemtechnik GmbH/)).toBeVisible(); + await expect(page.getByText(/Telefon: 04402 972577/)).toBeVisible(); + await expect( + page.getByText(/kontakt@littwin-systemtechnik\.de/) + ).toBeVisible(); + // Handbücher Button/Icon (Text oder Button reicht) + await expect(page.getByText(/Handbücher/)).toBeVisible(); +} diff --git a/playwright/tests/components/header/headerTest.ts b/playwright/tests/components/header/headerTest.ts new file mode 100644 index 0000000..6ce2a69 --- /dev/null +++ b/playwright/tests/components/header/headerTest.ts @@ -0,0 +1,21 @@ +import { Page, expect } from "@playwright/test"; + +/** + * Reusable header assertions. + * Add more checks here if the header grows (logout button, admin badge etc.). + */ +export async function headerTest(page: Page) { + // Haupttitel + await expect( + page.getByRole("heading", { name: "Meldestation" }) + ).toBeVisible(); + // Logo (alt="Logo") + await expect( + page.getByRole("img", { name: "Logo", exact: true }) + ).toBeVisible(); + // Talas Logo + await expect(page.getByRole("img", { name: "TALAS Logo" })).toBeVisible(); + // Theme Toggle (Label wechselt Dark/Light). Wir akzeptieren beide. + const darkBtn = page.getByRole("button", { name: /Dark Mode|Light Mode/ }); + await expect(darkBtn).toBeVisible(); +} diff --git a/playwright/tests/components/navigation/navTest.ts b/playwright/tests/components/navigation/navTest.ts new file mode 100644 index 0000000..0e9c35c --- /dev/null +++ b/playwright/tests/components/navigation/navTest.ts @@ -0,0 +1,20 @@ +import { Page, expect } from "@playwright/test"; + +/** + * Sidebar / Navigation visibility + core links. + */ +export async function navTest(page: Page) { + const links = [ + "Übersicht", + "Kabelüberwachung", + "Meldungseingänge", + "Schaltausgänge", + "Messwerteingänge", + "Berichte", + "System", + "Einstellungen", + ]; + for (const name of links) { + await expect(page.getByRole("link", { name })).toBeVisible(); + } +}