diff --git a/test/m-ai-03-gate.e2e-spec.ts b/test/m-ai-03-gate.e2e-spec.ts index 66dc293..0f25a0c 100644 --- a/test/m-ai-03-gate.e2e-spec.ts +++ b/test/m-ai-03-gate.e2e-spec.ts @@ -1,9 +1,14 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { INestApplication } from '@nestjs/common'; -import { Reflector } from '@nestjs/core'; +import { INestApplication, Injectable, CanActivate, ExecutionContext } 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'; @@ -44,8 +49,10 @@ describe('M-AI-03 GATE E2E (fail-closed)', () => { // AppModule.init() 连接 Prisma + Redis — 失败则测试 fail-closed const module: TestingModule = await Test.createTestingModule({ imports: [AppModule], - providers: [Reflector], - }).compile(); + }) + .overrideGuard(require('../src/common/guards/admin-auth.guard').AdminAuthGuard) + .useClass(MockAdminAuthGuard) + .compile(); app = module.createNestApplication(); app.setGlobalPrefix('api', { exclude: ['admin-api/(.*)', 'internal/(.*)'] });