import { Module } from '@nestjs/common';
import { AppController } from '../src/app.controller';
import { AppService } from '../src/app.service';
import { AuthModule } from '../src/auth/auth.module';
import { PluggyModule } from '../src/pluggy/pluggy.module';
import { LaravelApiModule } from '../src/laravel-api/laravel-api.module';
import { ApiKeyGuard } from '../src/common/guards/api-key/api-key.guard';
import { ConfigModule } from '@nestjs/config';

// Módulo de teste que não usa MongoDB
@Module({
  imports: [
    AuthModule,
    PluggyModule,
    LaravelApiModule,
    ConfigModule.forRoot({
      isGlobal: true,
      ignoreEnvFile: true, // Ignorar arquivos .env durante testes
      load: [
        () => ({
          MONGODB_URI: 'mongodb://localhost:27017/test',
          JWT_SECRET: 'test-secret-key',
          JWT_ALGORITHM: 'HS256',
          API_KEY: 'JOqyUcP45H875xmuI2gT3H9dDK42I2Wt',
          LARAVEL_URL: 'http://localhost:8000',
          LARAVEL_API_URL: 'http://localhost:8000',
          PLUGGY_CLIENT_ID: 'test-client-id',
          PLUGGY_CLIENT_SECRET: 'test-client-secret',
          PLUGGY_API_URL: 'https://api.pluggy.ai',
          NODE_ENV: 'test',
        }),
      ],
    }),
    // Não incluir MongooseModule nem módulos que dependem de BD
  ],
  controllers: [AppController],
  providers: [AppService, ApiKeyGuard],
})
export class TestAppModule {}
