Протестируйте вызов внутри API узла с помощью Jest - PullRequest
1 голос
/ 22 марта 2019

Я пытаюсь шутить этот маршрут на моем микросервисе узла. При инициализации моего микросервиса мне нужно проверить, что другой сервер жив. Функция работает, но я застрял в тестировании с шуткой.

Вот код микросервиса моего узла:

app.get(/ping, (req, res) => {
    axios.get('server.com/health')
      .then(() => {
        res.sendStatus(200);
      })
      .catch(() => {
        res.sendStatus(503);
      });
  });

А вот код моего тестового сервера:

import nock from 'nock';
import request from 'supertest';

describe('Liveness and Readiness', () => {
 beforeEach(() => {
  nock('server.com')
   .get('/health')
   .reply(200);
 });

 it('Microservice repond statut code 200 when requested on /ping ', () => {
  microService.init();

  return request(microService.start())
   .get('/ping')
   .expect(200);
});

Я использовал nock для проверки сервера, с которого мне нужно проверить работоспособность.

Ошибка, которую я получаю:

ожидается 200 "ОК", получено 500 "Внутренняя ошибка сервера"

Без кода проверки здоровья (см. Ниже) тест проходит успешно.

app.get(/ping, (req, res) => {
  res.sendStatus(200);
});

Даже без nock (значит, он должен пинговать реальный сервер), и я проверил, что он работает, он все еще не работает. Похоже, что он даже не пытается проверить здоровье в тесте, даже если он издевается. Я не знаю, что делать дальше, чтобы мой тест работал с этим конкретным случаем.

Также попробовал moxios on, тоже не получилось.

Я буду благодарен за любую помощь сообщества по этому вопросу :)

...