私の関数は 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 が発生しました