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

if (!process.env.ORACLE_DATABASE_URL) {
  throw new Error('ORACLE_DATABASE_URL is required for affiliate real-PG tests');
}
if (process.env.ALLOW_LIVE_DB !== '1') {
  throw new Error(
    'ALLOW_LIVE_DB=1 is required; run affiliate real-PG tests through ci-with-disposable-affiliate-pg.sh',
  );
}

export const affiliateRealPgSuites = [
  'tests/integration/affiliate-module/affiliate-payout-live.realpg.test.ts',
  'tests/integration/affiliate-module/backfill-oracle.int.test.ts',
  'tests/integration/affiliate-module/concurrency.realpg.test.ts',
  'tests/integration/affiliate-module/economic-regression.int.test.ts',
  'tests/integration/affiliate-module/fraud-cancel-restore.realpg.test.ts',
];

export default defineConfig({
  test: {
    environment: 'node',
    include: affiliateRealPgSuites,
    fileParallelism: false,
    maxWorkers: 1,
    maxConcurrency: 1,
    testTimeout: 60_000,
    hookTimeout: 120_000,
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
    },
  },
});
