mirror of
https://github.com/bckelley/cgm-remote-monitor.git
synced 2026-08-24 03:14:12 -05:00
92 lines
2.6 KiB
JavaScript
92 lines
2.6 KiB
JavaScript
var should = require('should');
|
|
var levels = require('../lib/levels');
|
|
|
|
describe('maker', function ( ) {
|
|
var maker = require('../lib/plugins/maker')(
|
|
{
|
|
extendedSettings: {maker: {key: '12345'}}
|
|
, levels: levels
|
|
});
|
|
|
|
//prevent any calls to iftt
|
|
function noOpMakeRequest (key, event, eventName, callback) {
|
|
if (callback) { callback(); }
|
|
}
|
|
|
|
maker.makeKeyRequest = noOpMakeRequest;
|
|
|
|
it('turn values to a query', function (done) {
|
|
maker.valuesToQuery({
|
|
value1: 'This is a title'
|
|
, value2: 'This is the message'
|
|
}).should.equal('?value1=This%20is%20a%20title&value2=This%20is%20the%20message');
|
|
done();
|
|
});
|
|
|
|
it('send a request', function (done) {
|
|
maker.sendEvent({name: 'test', message: 'This is the message', level: levels.toLowerCase(levels.WARN)}, function sendCallback (err) {
|
|
should.not.exist(err);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('not send a request without a name', function (done) {
|
|
maker.sendEvent({level: levels.toLowerCase(levels.WARN)}, function sendCallback (err) {
|
|
should.exist(err);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('not send a request without a level', function (done) {
|
|
maker.sendEvent({name: 'test'}, function sendCallback (err) {
|
|
should.exist(err);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('send a allclear, but only once', function (done) {
|
|
function mockedToTestSingleDone (key, event, eventName, callback) {
|
|
callback(); done();
|
|
}
|
|
|
|
maker.makeKeyRequest = mockedToTestSingleDone;
|
|
maker.sendAllClear({}, function sendCallback (err, result) {
|
|
should.not.exist(err);
|
|
result.sent.should.equal(true);
|
|
});
|
|
|
|
//send again, if done is called again test will fail
|
|
maker.sendAllClear({}, function sendCallback (err, result) {
|
|
should.not.exist(err);
|
|
result.sent.should.equal(false);
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
describe('multi announcement maker', function ( ) {
|
|
var maker = require('../lib/plugins/maker')({extendedSettings: {maker: {key: 'use announcementKey instead', announcementKey: '12345 6789'}}});
|
|
|
|
it('send 2 requests for the 2 keys', function (done) {
|
|
|
|
var key1Found = false;
|
|
var key2Found = false;
|
|
|
|
maker.makeKeyRequest = function expect2Keys (key, event, eventName, callback) {
|
|
if (callback) { callback(); }
|
|
|
|
key1Found = key1Found || key === '12345';
|
|
key2Found = key2Found || key === '6789';
|
|
|
|
if (eventName === 'ns-warning-test' && key1Found && key2Found) {
|
|
done();
|
|
}
|
|
};
|
|
|
|
maker.sendEvent({name: 'test', level: levels.toLowerCase(levels.WARN), isAnnouncement: true}, function sendCallback (err) {
|
|
should.not.exist(err);
|
|
});
|
|
});
|
|
|
|
});
|