import '@testing-library/jest-dom' import path from 'path' import fs from 'fs' /** * Vitest Setup File * * This file runs before each test file in the Vitest environment. * It validates that tests are running against the development database * to prevent accidental data corruption. */ // Load .env file first, then .env.development (which will override .env) const envPath = path.resolve(process.cwd(), '.env'); const envDevPath = path.resolve(process.cwd(), '.env.development'); // Load base .env file if (fs.existsSync(envPath)) { require('dotenv').config({ path: envPath }); } // Load .env.development file (will override .env settings) if (fs.existsSync(envDevPath)) { require('dotenv').config({ path: envDevPath, override: true }); } // Check if DATABASE_URL is set and points to dev database const databaseUrl = process.env.DATABASE_URL; if (databaseUrl) { const isDevDatabase = databaseUrl.includes('euchre_camp_dev'); const isProductionDatabase = databaseUrl.includes('euchre_camp') && !databaseUrl.includes('_dev') && !databaseUrl.includes('_dev_'); if (isProductionDatabase) { console.error(''); console.error('='.repeat(80)); console.error('CRITICAL ERROR: Tests are attempting to run against PRODUCTION database!'); console.error('='.repeat(80)); console.error(''); console.error('Current DATABASE_URL:', databaseUrl); console.error(''); console.error('Tests MUST run against the development database (euchre_camp_dev)'); console.error(''); console.error('To fix this:'); console.error(' 1. Run: npm run test:run'); console.error(' 2. Or set: DATABASE_URL environment variable to dev database URL'); console.error(' 3. Or load .env.development: source .env.development && npm run test:run'); console.error(''); console.error('Aborting test execution to prevent data corruption.'); console.error(''); process.exit(1); } if (isDevDatabase) { console.log('✓ Tests running against development database (euchre_camp_dev)'); } } else { console.warn('⚠ No DATABASE_URL set - tests may fail or use unexpected database'); }