Я использую Nest JS 7.0.2 и имею глобально включенные каналы проверки через app.useGlobalPipes(new ValidationPipe());
.
Я хотел бы иметь возможность провести модульный тест, который проверяет, были ли выброшены ошибки, если предоставляется объект неправильной формы, однако тест в том виде, в котором он написан, все же проходит. Я видел, что одним из решений является проведение этого тестирования в e2e через этот пост , но мне интересно, есть ли что-то, чего мне не хватает, что позволило бы мне сделать это в модульном тестировании.
У меня очень простой контроллер с очень простым DTO.
Контроллер
async myApi(@Body() myInput: myDto): Promise<myDto | any> {
return {};
}
DTO
export class myDto {
@IsNotEmpty()
a: string;
@IsNotEmpty()
b: string | Array<string>
}
Spe c file
describe('generate', () => {
it('should require the proper type', async () => {
const result = await controller.generate(<myDto>{});
// TODO: I expect a validation error to occur here so I can test against it.
expect(result).toEqual({})
})
})
Сбой также произойдет, если я не приведу тип myDto
и просто сделаю ts-ignore
для универсального c объекта.