import "dotenv/config"; /** * Wird vor jedem Testlauf ausgeführt. * * Setzt eine vollständige, aber unschädliche Umgebung, damit lib/env.ts * durchläuft, ohne dass eine echte .env vorhanden sein muss. * * Ist eine .env vorhanden, wird sie oben geladen — dann laufen auch die Tests * mit, die eine echte Datenbank brauchen (Mandantentrennung). Ohne .env greifen * die Platzhalter, und diese Tests überspringen sich selbst. */ // NODE_ENV ist in den Node-Typen schreibgeschützt, zur Laufzeit aber setzbar. const umgebung = process.env as Record; umgebung.NODE_ENV = "test"; umgebung.TZ = "Europe/Berlin"; umgebung.SKIP_ENV_VALIDATION = "1"; umgebung.APP_URL ??= "http://localhost:3100"; umgebung.DATABASE_URL ??= "postgresql://test:test@localhost:5442/test?schema=public"; umgebung.DIRECT_DATABASE_URL ??= umgebung.DATABASE_URL; umgebung.REDIS_URL ??= "redis://localhost:6389"; umgebung.S3_ENDPOINT ??= "localhost"; umgebung.S3_ACCESS_KEY ??= "test"; umgebung.S3_SECRET_KEY ??= "test"; umgebung.S3_BUCKET ??= "test"; umgebung.AUTH_SECRET ??= "testgeheimnis_mindestens_32_zeichen_lang_ok"; umgebung.KIOSK_DEVICE_SECRET ??= "testgeraetegeheimnis"; // bcrypt mit weniger Runden — im Test zählt Tempo, nicht Härte. umgebung.AUTH_BCRYPT_ROUNDS ??= "4";