50 Unit-Tests mit Vitest fuer die Stellen, an denen ein Fehler teuer waere: Besitzstatus, Mehrfachauswahl inklusive Ueberspringen von Dubletten und bereits besessenen Sets, Token-Erzeugung und -Vergleich, Cent-Umrechnung und Slugs. Der Playwright-Smoke-Test laeuft den ganzen Weg: Registrierung des ersten Nutzers, Hersteller anlegen, Set anlegen, auf eine neue Wunschliste setzen, Link holen und als Besucher ohne Konto reservieren. Er nutzt ein eigenes Datenverzeichnis (./data-e2e), das vor jedem Lauf geleert wird. Dabei aufgefallen und behoben: eine spontan aus dem Katalog angelegte Wunschliste war nicht teilbar, weil das Feld isPublic ohne Formular auf false fiel. Ausserdem ist das Sternchen an Pflichtfeldern jetzt aria-hidden, damit der zugaengliche Name des Feldes sauber bleibt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import { defineConfig, devices } from '@playwright/test';
|
|
|
|
/**
|
|
* Smoke test setup.
|
|
*
|
|
* Runs against its own data directory (./data-e2e) so a test never touches the
|
|
* real database. The global setup wipes and migrates it before each run.
|
|
*/
|
|
const PORT = 3210;
|
|
const BASE_URL = `http://localhost:${PORT}`;
|
|
|
|
export default defineConfig({
|
|
testDir: './e2e',
|
|
globalSetup: './e2e/global-setup.ts',
|
|
fullyParallel: false,
|
|
workers: 1,
|
|
retries: 0,
|
|
// Generous: the dev server compiles each route on first visit.
|
|
timeout: 240_000,
|
|
expect: { timeout: 15_000 },
|
|
reporter: process.env.CI ? 'github' : 'list',
|
|
use: {
|
|
baseURL: BASE_URL,
|
|
trace: 'retain-on-failure',
|
|
locale: 'de-DE',
|
|
timezoneId: 'Europe/Berlin',
|
|
},
|
|
projects: [
|
|
{
|
|
name: 'mobile',
|
|
// The app is built for phones first, so the smoke test uses one.
|
|
use: { ...devices['Pixel 7'] },
|
|
},
|
|
],
|
|
webServer: {
|
|
command: `pnpm exec next dev -p ${PORT}`,
|
|
url: `${BASE_URL}/api/health`,
|
|
reuseExistingServer: false,
|
|
timeout: 180_000,
|
|
stdout: 'pipe',
|
|
stderr: 'pipe',
|
|
env: {
|
|
NODE_ENV: 'development',
|
|
DATA_DIR: './data-e2e',
|
|
BASE_URL,
|
|
BETTER_AUTH_SECRET: 'playwright-smoke-test-secret-0123456789abcdef',
|
|
MAX_UPLOAD_MB: '25',
|
|
},
|
|
},
|
|
});
|