import { execSync } from 'node:child_process'; // Tests TRUNCATE between cases, so they MUST NOT touch the dev database. Run them // against an isolated `iios_test` DB (created + migrated here, once, before the suite). const TEST_URL = 'postgresql://iios:iios@localhost:5434/iios_test?schema=public'; export default function setup() { try { execSync(`docker exec iios-db psql -U iios -d postgres -c "CREATE DATABASE iios_test"`, { stdio: 'pipe' }); } catch (e) { const msg = String(e.stderr ?? e.stdout ?? e); if (!/already exists/i.test(msg)) { console.warn(`[vitest] could not create iios_test (is the iios-db container up?): ${msg.slice(0, 160)}`); } } execSync('pnpm --filter @insignia/iios-service exec prisma migrate deploy', { stdio: 'inherit', env: { ...process.env, DATABASE_URL: TEST_URL }, }); }