diff --git a/test/m-ai-03-gate.e2e-spec.ts b/test/m-ai-03-gate.e2e-spec.ts index 0f25a0c..aeb5d80 100644 --- a/test/m-ai-03-gate.e2e-spec.ts +++ b/test/m-ai-03-gate.e2e-spec.ts @@ -1,14 +1,8 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication, Injectable, CanActivate, ExecutionContext } from '@nestjs/common'; +import { NestFactory } from '@nestjs/core'; +import { INestApplication } from '@nestjs/common'; import { JwtService } from '@nestjs/jwt'; import request from 'supertest'; import { AppModule } from '../src/app.module'; - -// Mock AdminAuthGuard — Test.createTestingModule 不提供 Reflector 给子模块 -@Injectable() -class MockAdminAuthGuard implements CanActivate { - canActivate(_context: ExecutionContext): boolean { return true; } -} import { AiJobCreationService } from '../src/modules/ai-job/ai-job-creation.service'; import { JobDefinitionRegistry } from '../src/modules/ai-job/job-definition-registry'; import { AiJobLifecycleRepository } from '../src/modules/ai-job/ai-job-lifecycle.repository'; @@ -46,22 +40,15 @@ describe('M-AI-03 GATE E2E (fail-closed)', () => { process.env.AI_JOB_SYNTHETIC_ENABLED = 'true'; process.env.JWT_SECRET = 'gate-e2e-secret'; - // AppModule.init() 连接 Prisma + Redis — 失败则测试 fail-closed - const module: TestingModule = await Test.createTestingModule({ - imports: [AppModule], - }) - .overrideGuard(require('../src/common/guards/admin-auth.guard').AdminAuthGuard) - .useClass(MockAdminAuthGuard) - .compile(); - - app = module.createNestApplication(); - app.setGlobalPrefix('api', { exclude: ['admin-api/(.*)', 'internal/(.*)'] }); + // NestFactory.create 提供所有 core providers (Reflector etc.) + // 连接 Prisma + Redis — 失败则测试 fail-closed + app = await NestFactory.create(AppModule); await app.init(); - creationService = module.get(AiJobCreationService); - registry = module.get(JobDefinitionRegistry); - lifecycleRepo = module.get(AiJobLifecycleRepository); - jwtService = module.get(JwtService); + creationService = app.get(AiJobCreationService); + registry = app.get(JobDefinitionRegistry); + lifecycleRepo = app.get(AiJobLifecycleRepository); + jwtService = app.get(JwtService); userToken = jwtService.sign({ sub: TEST_USER, email: 'gate@test.com', role: 'USER', type: 'user' }); }, 30000);