UNPKG

node-red-contrib-timer

Version:
130 lines (120 loc) 4.41 kB
var should = require("should"); var helper = require("node-red-node-test-helper"); var timerNode = require("../src/timer-node.js"); helper.init(require.resolve('node-red')); describe('timer-node node', function () { beforeEach((done) => { helper.startServer(done); }); afterEach((done) => { helper.unload(); helper.stopServer(done); }); it('should be loaded', (done) => { var flow = [{ id: "n1", type: "timer-node", name: "timer-node" }]; helper.load(timerNode, flow, () => { var n1 = helper.getNode("n1"); try { n1.should.have.property('name', 'timer-node'); done(); } catch (err) { done(err); } }); }); it('should pass input msg.topic to output', (done) => { var flow = [ { id: "n1", type: "timer-node", name: "timer-node", wires: [["n2"]] }, { id: "n2", type: "helper" } ]; helper.load(timerNode, flow, () => { var n2 = helper.getNode("n2"); var n1 = helper.getNode("n1"); n2.on("input", function (msg) { try { msg.should.have.property('topic', 'input message'); done(); } catch (err) { done(err); } }); n1.receive({ topic: "input message", payload: true }); }); }); it('should override topic when defined in timer-node edit properties dialog', (done) => { var flow = [ { id: "n1", type: "timer-node", name: "timer-node", topic: "override", wires: [["n2"]] }, { id: "n2", type: "helper" } ]; helper.load(timerNode, flow, () => { var n2 = helper.getNode("n2"); var n1 = helper.getNode("n1"); n2.on("input", function (msg) { try { msg.should.have.property('topic', 'override'); done(); } catch (err) { done(err); } }); n1.receive({ topic: "input message", payload: true }); }); }); it('should set timer when input is an integer', (done) => { var flow = [ { id: "n1", type: "timer-node", name: "timer-node", wires: [[],["n2"]] }, { id: "n2", type: "helper" } ]; helper.load(timerNode, flow, () => { var n2 = helper.getNode("n2"); var n1 = helper.getNode("n1"); n2.on("input", function (msg) { try { msg.should.have.property('payload', 60); done(); } catch (err) { done(err); } }); n1.receive({ payload: 60 }); }); }); it('should start time when input msg.payload is true', (done) => { var flow = [ { id: "n1", type: "timer-node", name: "timer-node", payloadOn: true, payloadOnType: "bool", payloadOff: false, payloadOffType: "bool", wires: [["n2"]] }, { id: "n2", type: "helper" } ]; helper.load(timerNode, flow, () => { var n2 = helper.getNode("n2"); var n1 = helper.getNode("n1"); n2.on("input", function (msg) { try { msg.should.have.property('payload', true); done(); } catch (err) { done(err); } }); n1.receive({ payload: true }); }); }); it('should stop time when input msg.payload is false', (done) => { var flow = [ { id: "n1", type: "timer-node", name: "timer-node", payloadOn: true, payloadOnType: "bool", payloadOff: false, payloadOffType: "bool", wires: [["n2"]] }, { id: "n2", type: "helper" } ]; helper.load(timerNode, flow, () => { var n2 = helper.getNode("n2"); var n1 = helper.getNode("n1"); n2.on("input", function (msg) { try { msg.should.have.property('payload', false); done(); } catch (err) { done(err); } }); n1.receive({ payload: false }); }); }); });