2

私の関数は 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: Attempted to wrap undefined property request as function が発生しました

4

1 に答える 1