test: analogInputs.test.ts and dashboard.test.ts with import components

This commit is contained in:
ISA
2025-09-11 08:50:39 +02:00
parent 7f035f0c18
commit 74880d9ccc
8 changed files with 35 additions and 10 deletions

View File

@@ -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.907 NEXT_PUBLIC_APP_VERSION=1.6.908
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)

View File

@@ -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.907 NEXT_PUBLIC_APP_VERSION=1.6.908
NEXT_PUBLIC_CPL_MODE=production NEXT_PUBLIC_CPL_MODE=production

View File

@@ -1,3 +1,8 @@
## [1.6.908] 2025-09-11
- chore: only *.test.ts for pages and components test
---
## [1.6.907] 2025-09-11 ## [1.6.907] 2025-09-11
- test: layout header, footer and sidebar - test: layout header, footer and sidebar

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "cpl-v4", "name": "cpl-v4",
"version": "1.6.907", "version": "1.6.908",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "cpl-v4", "name": "cpl-v4",
"version": "1.6.907", "version": "1.6.908",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.0", "@emotion/react": "^11.13.0",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "cpl-v4", "name": "cpl-v4",
"version": "1.6.907", "version": "1.6.908",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "next dev -p 3000", "dev": "next dev -p 3000",

View File

@@ -4,11 +4,15 @@ import { Page, expect } from "@playwright/test";
* Footer assertions. * Footer assertions.
*/ */
export async function footerTest(page: Page) { export async function footerTest(page: Page) {
await expect(page.getByText(/Littwin Systemtechnik GmbH/)).toBeVisible(); // Auf Footer-Bereich einschränken, damit Selektoren eindeutig bleiben
await expect(page.getByText(/Telefon: 04402 972577/)).toBeVisible(); const footer = page.getByRole("contentinfo");
await expect(footer).toBeVisible();
await expect(footer.getByText(/Littwin Systemtechnik GmbH/)).toBeVisible();
await expect(footer.getByText(/Telefon: 04402 972577/)).toBeVisible();
await expect( await expect(
page.getByText(/kontakt@littwin-systemtechnik\.de/) footer.getByText(/kontakt@littwin-systemtechnik\.de/)
).toBeVisible(); ).toBeVisible();
// Handbücher Button/Icon (Text oder Button reicht) // Exaktes Label im Footer, nicht die Überschrift "PDF Handbücher"
await expect(page.getByText(/Handbücher/)).toBeVisible(); await expect(footer.getByText("Handbücher", { exact: true })).toBeVisible();
} }

View File

@@ -1,4 +1,7 @@
import { test, expect } from "@playwright/test"; 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({ test.use({
viewport: { viewport: {
@@ -9,6 +12,11 @@ test.use({
test("test", async ({ page }) => { test("test", async ({ page }) => {
await page.goto("http://localhost:3000/analogInputs"); await page.goto("http://localhost:3000/analogInputs");
// Gemeinsame Layout-Checks
await headerTest(page);
await navTest(page);
await footerTest(page);
// Seitenspezifische Checks
await expect( await expect(
page.getByRole("heading", { name: "Messwerteingänge" }).first() page.getByRole("heading", { name: "Messwerteingänge" }).first()
).toBeVisible(); ).toBeVisible();

View File

@@ -1,4 +1,7 @@
import { test, expect } from "@playwright/test"; 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({ test.use({
viewport: { viewport: {
@@ -9,6 +12,11 @@ test.use({
test("Dashboard", async ({ page }) => { test("Dashboard", async ({ page }) => {
await page.goto("http://localhost:3000/dashboard"); await page.goto("http://localhost:3000/dashboard");
// Gemeinsame Layout-Checks
await headerTest(page);
await navTest(page);
await footerTest(page);
// Seitenspezifische Checks
await expect(page.getByRole("main").locator("svg").first()).toBeVisible(); await expect(page.getByRole("main").locator("svg").first()).toBeVisible();
await expect( await expect(
page.getByRole("heading", { name: "Letzten 20 Meldungen" }) page.getByRole("heading", { name: "Letzten 20 Meldungen" })