Тестирование API контроллера, который переадресовывает - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть контроллер в Nest. JS, который перенаправляет:

    @Get('route/:value')
    async route(@Param('value') value: string) {
      const result = await this.someService.doSomethingWithValue(value);
      if (result) {
        return { url: 'http://example.com/success.html' };
      } else {
        return { url: 'http://example.com/fail.html' };
      }
    } 

Как мне проверить в controller.spe c .ts правильный ответ на перенаправление? т.е.:

describe('test', () => {
    it('should show success page', async() => {
      service.doSomethingWithValue = jest.fn(() => Promise.resolve(true));
      expect(controller.route('value')).toBe(?????);
    });
  });

1 Ответ

0 голосов
/ 23 февраля 2020

Это должно быть именно то, что вы ожидаете. Вы возвращаете значения, это должны быть те значения, верно? На самом деле эти объекты, поэтому вы должны использовать toEqual вместо toBe. В этом случае вы возвращаете true, поэтому у вас должно быть expect(controller.route('value')).toEqual({ url: 'http://example.com/success.html' }). Начните использовать типы возврата для всего, что вы можете, это поможет вам в долгосрочной перспективе.

...