import { beforeAll } from 'vitest';
import { rmSync, mkdirSync } from 'node:fs';

// Use a dedicated, freshly-migrated file DB for the test run.
process.env.DATABASE_URL = 'file:./.tmp/test.db';
process.env.BETTER_AUTH_SECRET = 'test-secret';
process.env.BETTER_AUTH_URL = 'http://localhost:3000';

// Reset the scratch DB at top level — setup files run before the test-file
// module graph (and thus before db/client.ts opens, and locks, the file on
// Windows). Doing this inside beforeAll would race the open libsql handle and
// fail with EBUSY on unlink.
rmSync('./.tmp', { recursive: true, force: true });
mkdirSync('./.tmp', { recursive: true });

beforeAll(async () => {
  const { runMigrations } = await import('../src/db/migrate');
  await runMigrations();
});
