33 lines
980 B
TypeScript
33 lines
980 B
TypeScript
|
|
/**
|
||
|
|
* Test Environment Setup
|
||
|
|
* Load test environment variables before tests run
|
||
|
|
*/
|
||
|
|
|
||
|
|
import { execSync } from 'child_process';
|
||
|
|
import path from 'path';
|
||
|
|
import fs from 'fs';
|
||
|
|
|
||
|
|
// Use development database for tests (simplest approach)
|
||
|
|
process.env.DATABASE_URL = 'file:./dev.db';
|
||
|
|
process.env.JWT_SECRET = 'test-secret-key-for-jest-development-purpose';
|
||
|
|
process.env.NODE_ENV = 'test';
|
||
|
|
|
||
|
|
// Initialize test database if needed
|
||
|
|
const dbPath = path.join(__dirname, '..', 'dev.db');
|
||
|
|
if (!fs.existsSync(dbPath)) {
|
||
|
|
try {
|
||
|
|
const schemaPath = path.join(__dirname, '..', 'prisma', 'schema.prisma');
|
||
|
|
execSync(`npx prisma db push --schema="${schemaPath}" --skip-generate`, {
|
||
|
|
stdio: 'inherit',
|
||
|
|
cwd: path.join(__dirname, '..'),
|
||
|
|
windowsHide: true
|
||
|
|
});
|
||
|
|
console.log('✅ Test database initialized');
|
||
|
|
} catch (error) {
|
||
|
|
console.error('❌ Failed to initialize test database:', error);
|
||
|
|
throw error;
|
||
|
|
}
|
||
|
|
} else {
|
||
|
|
console.log('✅ Using existing database');
|
||
|
|
}
|