{{!-- Integr8 Configuration Template with Decorator Scanning --}}
{{!-- Generated by @soapjs/integr8 --}}

module.exports = {
  services: [
    {
      name: '{{serviceName}}',
      type: 'local',
      command: '{{startCommand}}',
      cwd: '{{workingDirectory}}',
      healthCheck: {
        url: '{{healthCheckUrl}}',
        timeout: 5000
      },
      env: {
        NODE_ENV: 'test',
        PORT: '{{servicePort}}'
      }
    }
  ],

  databases: [
    {
      name: '{{dbName}}',
      type: '{{dbType}}',
      host: '{{dbHost}}',
      port: {{dbPort}},
      username: '{{dbUsername}}',
      password: '{{dbPassword}}',
      database: '{{dbDatabase}}'
    }
  ],

  testType: '{{testType}}',
  testFramework: '{{testFramework}}',
  testDir: '{{testDir}}',
  testTimeout: {{testTimeout}},
  setupTimeout: {{setupTimeout}},
  teardownTimeout: {{teardownTimeout}},

  endpointDiscovery: {
    command: '{{discoveryCommand}}',
    timeout: {{discoveryTimeout}}
  },

  scanning: {
    decorators: {
      enabled: true,
      framework: 'nestjs',
      decorators: {
        controllers: ['@Controller', '@RestController'],
        routes: ['@Get', '@Post', '@Put', '@Delete', '@Patch'],
        statusCodes: ['@HttpCode'],
        apiDocs: ['@ApiResponse', '@ApiOperation', '@ApiTags'],
        routers: ['RouterModule', '@Router']
      },
      paths: ['src/controllers', 'src/api', 'src/routes', 'src/modules'],
      exclude: ['**/*.spec.ts', '**/*.test.ts', '**/node_modules/**']
    }
  }
};
