# Decisions — cts-herd-playwright ## Dummy Login Approach - **Route + Login-Button**: When `APP_ENV=local`, show "Test Login" button on login page - **Auth method**: `Auth::login()` (NOT `Auth::attempt()` due to bcrypt('') password issue) - **Gating**: `app()->environment('local', 'testing')` (NOT `APP_DEBUG`) ## Playwright Configuration - **Browser**: chromium only (fastest, most compatible) - **Workers**: 1 (serialize all tests to prevent SQLite BUSY) - **Base URL**: http://cts-work.test (Herd-served, no `webServer` block) - **Auth strategy**: storageState pattern with dummy login setup ## Test Strategy - **No CTS data assertions**: Use structural patterns only (no hardcoded service titles/dates/song names) - **German UI text**: All UI assertions must use German with "Du" form - **data-testid naming**: `{component-kebab}-{element-description}` pattern ## Environment - **Herd URL**: http://cts-work.test (replaces localhost:8000 Docker setup) - **Vite build**: Use static build for tests (not HMR dev server) - **Worktree**: Reuse existing `/Users/thorsten/AI/cts-work` on branch `cts-presenter-app`