Files
mcpctl/src/db/tests/global-setup.ts

27 lines
850 B
TypeScript
Raw Normal View History

/**
* 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');
}
}