Узел 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

Другие вопросы по тегам