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>
14 lines
510 B
TypeScript
14 lines
510 B
TypeScript
import { execFileSync } from 'node:child_process';
|
|
|
|
/**
|
|
* Migrates the smoke-test database. The directory itself is wiped earlier by
|
|
* scripts/reset-e2e.mjs, because Playwright starts its web server before this
|
|
* hook runs and the open database file would block the delete on Windows.
|
|
*/
|
|
export default function globalSetup() {
|
|
execFileSync('node', ['node_modules/tsx/dist/cli.mjs', 'scripts/migrate.ts'], {
|
|
stdio: 'inherit',
|
|
env: { ...process.env, DATA_DIR: './data-e2e' },
|
|
});
|
|
}
|