Я тестирую свой контроллер, но у меня проблема с издевательством над охранниками этого контроллера. Мое приложение было разработано с использованием Nest Js версии 6.13.1
. Я могу переопределить один охранник, чтобы смоделировать его, как показано ниже:
const fakeGuard: CanActivate = { canActivate: () => true };
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [
CoreModule,
AuthModule,
PermissionsModule,
UsersModule
],
controllers: [UsersController],
})
.overrideGuard(AuthGuard('jwt')).useValue(fakeGuard) // When I have one guard in my controller it works right
.compile();
controller = module.get<UsersController>(UsersController);
app = module.createNestApplication();
app.init();
});
Но в моем сценарии у меня есть 2 охранники, определенные в моем контроллере
@UseGuards(AuthGuard('jwt'), PermissionGuard)
export class UsersController {
...
}
Я не нашел способа издеваться над несколькими охранниками. Я пытался пройти 2 охранника, когда я вызываю overrideGuard, но когда я запустил тест, ничего не получалось. Но я знаю, проблема в том, что я не мог издеваться над этими двумя охранниками. Если вы столкнулись с той же проблемой, поделитесь со мной своим решением, спасибо.