feat: add database test safety configuration

This commit is contained in:
2026-03-31 18:23:47 -07:00
parent 6cef0ac342
commit abc1963aea
7 changed files with 120 additions and 17 deletions
+26 -3
View File
@@ -16,11 +16,34 @@ function isDevDatabase(): boolean {
return dbUrl.includes('euchre_camp_dev');
}
// Warn if not using dev database
function isProductionDatabase(): boolean {
const dbUrl = process.env.DATABASE_URL || '';
return dbUrl.includes('euchre_camp') && !dbUrl.includes('_dev');
}
// Strict check - fail if using production database
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:', process.env.DATABASE_URL);
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:acceptance');
console.error(' 2. Or set: DATABASE_URL="postgresql://euchre_camp:password@dhg.lol:5432/euchre_camp_dev"');
console.error('');
console.error('Aborting test execution to prevent data corruption.');
console.error('');
process.exit(1);
}
if (!isDevDatabase()) {
console.warn('⚠️ WARNING: Not using dev database!');
console.warn('⚠️ WARNING: DATABASE_URL does not contain euchre_camp_dev');
console.warn(' Current DATABASE_URL:', process.env.DATABASE_URL);
console.warn(' Expected to contain: euchre_camp_dev');
}
export default async function globalSetup(config: FullConfig) {