J'ai une manette dans Nest.JS qui redirige :

    @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' };
      }
    } 

Comment puis-je tester dans controller.spec.ts la bonne réponse de redirection ? c'est à dire.:

describe('test', () => {
    it('should show success page', async() => {
      service.doSomethingWithValue = jest.fn(() => Promise.resolve(true));
      expect(controller.route('value')).toBe(?????);
    });
  });
-1
Miron Ophir 22 févr. 2020 à 22:14

1 réponse

Meilleure réponse

Il doit être exactement ce à quoi vous vous attendez. Vous renvoyez des valeurs, cela devrait être ces valeurs, n'est-ce pas ? En fait, ces objets, vous devez donc utiliser toEqual au lieu de toBe. Dans ce cas, vous retournez true donc vous devriez avoir expect(controller.route('value')).toEqual({ url: 'http://example.com/success.html' }). Commencez à utiliser des types de retour sur tout ce que vous pouvez, cela vous aidera à long terme.

0
Jay McDoniel 22 févr. 2020 à 23:29