function newNode(configOverrides) { const config = { name: 'test-node', suspended: false, ontime: '11:45', ontopic: 'on topic', onpayload: 'on payload', onoffset: '', onrandomoffset: 0, offtime: 'dawn', offtopic: 'off topic', offpayload: 'off payload', offoffset: '5', offrandomoffset: 1, lat: 51.33411, lon: -0.83716, unittest: true, mon: true, tue: true, wed: true, thu: true, fri: true, sat: true, sun: true }; if (configOverrides) { _.assign(config, configOverrides); } return mock(nodeRedModule, config); }
function runBetween(start, end, startOffset, endOffset) { const node = mock(nodeRedModule, { startTime: start, endTime: end, startOffset: startOffset, endOffset: endOffset, lat: 51.33411, lon: -0.83716, unitTest: true }); const counts = { o1: 0, o2: 0 }; node.send = function(msg) { if (msg[0]) counts.o1++; if (msg[1]) counts.o2++; }; const time = moment('2016-01-01'); node.now = function() { return time.clone(); }; for (let i = 0; i < 7 * 24; ++i) { time.add(1, 'hour'); node.emit('input', {}); } return counts; }