В Nest настроен контроллер JS, и я хочу проверить, установлены ли соответствующие защитные устройства - есть ли у кого-нибудь пример того, как это можно сделать?
Этот (сокращенный) пример правильно работает как приложение, поэтому я только после руководства по тестированию.
Вы заметите, что в пользовательском тесте есть тесты, где я звоню Reflect.getMetadata
. Я стремлюсь к чему-то вроде этого - когда я проверяю его на метаданных __guards__
, это функция, и я изо всех сил пытаюсь ее смоделировать, чтобы проверить, применяется ли она с AuthGuard('jwt')
в качестве настройки.
User.controller.ts
@Controller('/api/user')
export class UserController {
@UseGuards(AuthGuard('jwt'))
@Get()
user(@Request() req) {
return req.user;
}
}
User.controller.spe c .ts
describe('User Controller', () => {
// beforeEach setup as per the cli generator
describe('#user', () => {
beforeEach(() => {
// This is how I'm checking the @Get() decorator is applied correctly - I'm after something for __guards__
expect(Reflect.getMetadata('path', controller.user)).toBe('/');
expect(Reflect.getMetadata('method', controller.user)).toBe(RequestMethod.GET);
});
it('should return the user', () => {
const req = {
user: 'userObj',
};
expect(controller.user(req)).toBe(req.user);
});
});
});