import { defineConfig } from 'vitest/config';
import path from 'node:path';

export default defineConfig({
  test: {
    include: ['tests/integration/**/*.test.ts', 'src/**/*.test.ts'],
    environment: 'node',
    // Migrates and seeds the dedicated test database once per run.
    globalSetup: ['./tests/integration/global-setup.ts'],
    // Redirects DATABASE_URL before the Prisma client singleton is imported.
    setupFiles: ['./tests/integration/setup.ts'],
    // Integration tests share one database, so files must not run in parallel.
    fileParallelism: false,
    testTimeout: 30_000,
    hookTimeout: 120_000,
  },
  resolve: {
    alias: { '@': path.resolve(import.meta.dirname, 'src') },
  },
});
