import { expect, type Page } from "@playwright/test"; export const BENUTZER = process.env["E2E_BENUTZER"] ?? "admin"; export const PASSWORT = process.env["E2E_PASSWORT"] ?? "proxdeploy-dev-admin"; export async function anmelden(page: Page, ziel = "/") { await page.goto(ziel); await expect(page).toHaveURL(/\/anmelden/); await page.getByLabel("Benutzername").fill(BENUTZER); await page.getByLabel("Passwort").fill(PASSWORT); await page.getByRole("button", { name: "Anmelden" }).click(); await expect(page).not.toHaveURL(/\/anmelden/); } /** * Gegen die eingestellte Bildschirmbreite messen, nicht gegen innerWidth: bei mobiler Emulation * zoomt der Browser bei zu breitem Inhalt heraus, und innerWidth wächst einfach mit. */ export async function keinQuerscrollen(page: Page) { const breite = page.viewportSize()!.width; const inhalt = await page.evaluate(() => ({ scroll: document.documentElement.scrollWidth, fenster: window.innerWidth, })); expect(inhalt.fenster, "Der Browser hat herausgezoomt – etwas ist breiter als der Bildschirm").toBe(breite); expect(inhalt.scroll).toBeLessThanOrEqual(breite); } /** Mit dem Präfix zz-e2e lassen sich Testdaten erkennen und aufräumen. */ export const E2E_PRAEFIX = "zz-e2e";