/** * Vitest globalSetup: push schema once before all db tests. * Runs in the main vitest process, outside test workers. */ import { execSync } from 'node:child_process'; const TEST_DATABASE_URL = process.env['DATABASE_URL'] ?? 'postgresql://mcpctl:mcpctl_test@localhost:5433/mcpctl_test'; export function setup(): void { try { execSync('npx prisma db push --force-reset --skip-generate', { cwd: new URL('..', import.meta.url).pathname, env: { ...process.env, DATABASE_URL: TEST_DATABASE_URL, PRISMA_USER_CONSENT_FOR_DANGEROUS_AI_ACTION: 'yes', }, stdio: 'pipe', }); } catch { // Test DB not available — db-specific tests will fail individually, // but non-db tests can still run. console.warn('[global-setup] Test database not available, skipping schema push'); } }