Узел js создает тестовую заглушку для цепочки методов
Моя функция - sendMail. Я хочу заблокировать функцию mailjet, и она имеет цепочку методов mailjet.post('send'). Request...
Я хочу утверждать, что обратный вызов вызывается в случае успеха или неудачи почты.
Так, как я заглушаю эту цепочку методов?
var sendMail = function (templateName, callback) {
// From template name find template id of mailjet
mailingExternalTemplateModel.findMailingTemplateId(templateName, function (err, result) {
const request = mailjet
.post("send")
.request(params)
request
.then((result) => {
if (typeof callback === 'function') {
callback(null, result.body);
}
})
.catch((err) => {
if (typeof callback === 'function') {
callback(err, null);
}
})
} else {
callback(err, null);
}
});};
я сделал
sinon.stub(mailjet, 'post').withArgs('send').returns(mailjetClient);
sinon.stub(mailjetClient, 'request').returns(Promise);
Но я получил ошибку TypeError: Попытка обернуть неопределенный запрос свойства как функцию
1 ответ
Я разработчик, отвечающий за все Mailjet Wrappers, включая NodeJS.
Я фактически обновляю каждый из них и добавляю такие функции, как возможность совершить звонок (или нет). Для версии NodeJS бета-версия будет развернута в npm к завтрашнему вечеру.
Я дополню этот ответ изменениями, которые вы должны будете сделать (которых немного), когда бета-версия станет доступной.
Если вам интересно, вы все равно можете взглянуть на сделанные мной модификации: https://github.com/mailjet/mailjet-apiv3-nodejs/pull/21