UNPKG

flw-notif

Version:

A simple library for interfacing with the flutterwave notification service

93 lines (75 loc) 2.35 kB
'use strict'; var expect = require('chai').expect; var notif = require('../'); function notifDelegate (token, data, action) { return function () { var notifObj = new notif(token); return notifObj[action](data); } } describe('#NotificationSMSService', function () { it('Should throw "APP_TOKEN is required error"', function () { expect(notifDelegate()).to.throw('APP_TOKEN is required'); }); var requiredFields = ['template_id', 'sender', 'receiver']; requiredFields .forEach( function (required) { it('Should throw ' + required + ' is required error', function () { var data = { "template_id" : "57b591bb9400751d114b0583", "sender" : "PWC", "receiver" : "08140732882", "placeholders" : { "Ridwan" : "Mandem", "user": "123455ss" } }; delete data[required]; expect( notifDelegate('abcde', data, 'sendSMS') ).to.throw(required + ' is required'); }); }); it('Should fail with template not found error', function (done) { var data = { "template_id" : "57b591bb9400751d114b0583", "sender" : "PWC", "receiver" : "08140732882", "placeholders" : { "Ridwan" : "Mandem", "user": "123455ss" } }; notifDelegate('90933-NSJKD-ASKD', data, 'sendSMS')() .then( function (response) { response = JSON.parse(response); expect(response).to.have.property('status').to.equal('error'); expect(response.data).to.have.property('message').to.equal('template not found'); done(); }) .catch( function (error) { console.log(error, '12'); done(); }); }); it('Should successfully queue an SMS for sending', function (done) { var data = { "template_id" : "5800ef819d625ced5e8431a4", "sender" : "PWC", "receiver" : "+2348094827476", "placeholders": { "senderName":"Deji Naiwo" } }; notifDelegate('NOTIF-90888933-FLWV-LIB'/*'90933-NSJKD-ASKD'*/, data, 'sendSMS')() .then( function (response) { response = JSON.parse(response); console.log(response); expect(response).to.have.property('status').to.equal('ok'); expect(response.data).to.have.property('message').to.equal('successfuly saved'); done(); }) .catch( function (error) { console.log(error, '12'); //expect(error).to.equal(null); done(); }); }); });