В моем API есть маршрут, который вызывает другой сервер, и я столкнулся с проблемой, когда я не могу проверить, смоделировать разрешенное значение для этого вызова другого сервера. Модульный тест, кажется, всегда вызывает другой сервер, независимо от того, как я к этому подхожу.
let iAgent: PartialMock<InternalAgent>;
beforeEach(() => {
iAgent = {
extend: jest.fn()
};
});
if(iAgent.extend) {
iAgent.extend.mockResolvedValue({});
}
const r = await request.post('/api/v1/webhooks/extend')
.send({
id: 1
});
expect(r.status).toEqual(200);
expect(iAgent.extend).toBeCalledTimes(1);
и внутри моего фактического маршрута он вызывает это каждый раз:
await iAgent.extend();
и происходит сбой в этой строке, так как другой сервер не работает, и я получаю сообщение об отказе в соединении. Очевидно, что функция iAgent.extend
даже не вызывается один раз, но все же удается вернуть отклонение.
Таким образом, я уверен, что он не должен вызывать реальную функцию в моем маршруте и пропускать ее, возвращаясь к моему разрешенному значению в тесте, если я правильно понимаю, однако это не так, и я не уверен, как продолжить.
Да, и просто для ясности по поводу проверки if
для моего mockResolvedValue
, то есть просто для того, чтобы на данный момент избежать строгих проверок нуля в моей конфигурации. Но я вошел в условную систему, и она высмеивает значение