import * as path from 'path';
import * as dotenv from 'dotenv';

/**
 * Charge apps/api/.env.test puis vérifie que DATABASE_URL pointe bien sur la
 * base de test. Garde-fou indispensable : resetDb() tronque toutes les tables,
 * il ne doit jamais pouvoir s'exécuter contre la base de dev (:3309/studio-m).
 */
export function loadTestEnv(): void {
  // `override: true` : @prisma/client charge apps/api/.env dès son import, il
  // faut donc écraser ces valeurs de dev par celles de .env.test.
  dotenv.config({
    path: path.join(__dirname, '..', '.env.test'),
    override: true,
  });
  assertTestDatabaseUrl();
}

export function assertTestDatabaseUrl(): void {
  const url = process.env.DATABASE_URL ?? '';
  if (!url.includes('studio-m-test')) {
    throw new Error(
      `DATABASE_URL ne pointe pas sur la base de test (studio-m-test) : "${url}". ` +
        'Abandon pour ne pas toucher une base de dev/prod.',
    );
  }
}
