feat: Grundgerüst mit Anmeldung, Layout und Design-Tokens
Next.js 16, Prisma 7, Tailwind 4 und Vitest/Playwright, Konfiguration aus Laufzettel übernommen, weil dort derselbe Stack erprobt ist. Die Farben der Branding-Vorgabe stehen als Tokens in globals.css, das helle Theme setzt dieselben Namen neu. Amber und Rot sind dort abgedunkelt, sonst reicht der Kontrast nicht – ein Test prüft beide Themes gegen 4,5:1. Anmeldung mit lokalem Benutzer, Rolle je Anfrage aus der Datenbank, Audit-Log per Trigger nur anhängbar. Geprüft im gebauten Stand auf 1440 px und 390 px. Closes #001 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
import { defineConfig, devices } from "@playwright/test";
|
||||
|
||||
/**
|
||||
* Ende-zu-Ende-Abläufe – immer gegen den **gebauten** Stand (`pnpm build && pnpm start`), weil
|
||||
* `next dev` hier nicht verlässlich hydriert und ein Screenshot dann nichts beweist.
|
||||
*/
|
||||
const APP_URL = process.env["E2E_APP_URL"] ?? "http://127.0.0.1:3310";
|
||||
|
||||
export default defineConfig({
|
||||
testDir: "./tests/e2e",
|
||||
fullyParallel: false,
|
||||
workers: 1,
|
||||
forbidOnly: Boolean(process.env["CI"]),
|
||||
reporter: "list",
|
||||
use: {
|
||||
baseURL: APP_URL,
|
||||
trace: "retain-on-failure",
|
||||
locale: "de-DE",
|
||||
timezoneId: "Europe/Berlin",
|
||||
},
|
||||
projects: [
|
||||
{ name: "desktop", use: { ...devices["Desktop Chrome"], viewport: { width: 1440, height: 900 } } },
|
||||
// 390 px ist die Abnahmebreite fürs Handy (kein horizontales Scrollen).
|
||||
{ name: "handy", use: { ...devices["Pixel 7"], viewport: { width: 390, height: 844 } } },
|
||||
],
|
||||
});
|
||||
Reference in New Issue
Block a user