Как проверить, что труба валидации выдает ожидающую ошибку для запроса неправильной формы на NestJS - PullRequest
0 голосов
/ 23 марта 2020

Я использую 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 объекта.

...