节点js为方法链提供测试存根

时间:2017-02-06 11:05:00

标签: node.js mocha sinon chai mailjet

我的功能是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 个答案:

答案 0 :(得分:1)

我是负责每个Mailjet Wrappers的开发人员,包括NodeJS。

我实际上更新了每一个并添加了诸如是否可以进行通话等功能。对于NodeJS版本,测试版将在明天晚上的npm部署。

我会在测试版可用后,根据您必须进行的修改(少数几项)来更新此答案。

如果您感到好奇,您仍然可以查看我所做的修改:https://github.com/mailjet/mailjet-apiv3-nodejs/pull/21

相关问题