/** * Test script to verify DataSource injection fix * This validates that AdminAnalyticsService, AdminMonitoringService, * and AdminProgressService can properly inject 'auth' DataSource */ import { Test, TestingModule } from '@nestjs/testing'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ConfigModule } from '@nestjs/config'; import { AdminAnalyticsService } from './src/modules/admin/services/admin-analytics.service'; import { AdminMonitoringService } from './src/modules/admin/services/admin-monitoring.service'; import { AdminProgressService } from './src/modules/admin/services/admin-progress.service'; async function testDataSourceInjection() { console.log('๐Ÿงช Testing DataSource injection fix...\n'); try { const moduleRef: TestingModule = await Test.createTestingModule({ imports: [ ConfigModule.forRoot({ isGlobal: true, envFilePath: ['.env.local', '.env'], }), TypeOrmModule.forRoot({ name: 'auth', type: 'postgres', host: process.env.DATABASE_HOST || 'localhost', port: parseInt(process.env.DATABASE_PORT || '5432', 10), username: process.env.DATABASE_USERNAME || 'postgres', password: process.env.DATABASE_PASSWORD || 'postgres', database: process.env.DATABASE_NAME || 'gamilit_dev', synchronize: false, logging: false, }), ], providers: [ AdminAnalyticsService, AdminMonitoringService, AdminProgressService, ], }).compile(); const analyticsService = moduleRef.get(AdminAnalyticsService); const monitoringService = moduleRef.get(AdminMonitoringService); const progressService = moduleRef.get(AdminProgressService); console.log('โœ… AdminAnalyticsService instantiated successfully'); console.log('โœ… AdminMonitoringService instantiated successfully'); console.log('โœ… AdminProgressService instantiated successfully'); console.log('\n๐ŸŽ‰ All DataSource injections working correctly!'); console.log('\nFix applied:'); console.log(' - Changed @InjectDataSource("default") โ†’ @InjectDataSource("auth")'); console.log(' - Files fixed: 3 (admin-analytics, admin-monitoring, admin-progress)'); await moduleRef.close(); process.exit(0); } catch (error) { console.error('โŒ Test failed:', error.message); console.error('\nError details:', error); process.exit(1); } } testDataSourceInjection();