Я пытаюсь шутить этот маршрут на моем микросервисе узла. При инициализации моего микросервиса мне нужно проверить, что другой сервер жив. Функция работает, но я застрял в тестировании с шуткой.
Вот код микросервиса моего узла:
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, тоже не получилось.
Я буду благодарен за любую помощь сообщества по этому вопросу :)