Update trigger node ui to use typedInputs

This commit is contained in:
Nick O'Leary
2016-07-05 15:38:43 +01:00
parent b74a35b9d1
commit 691b083364
4 changed files with 176 additions and 113 deletions

View File

@@ -18,7 +18,7 @@ var should = require("should");
var helper = require("../../helper.js");
var triggerNode = require("../../../../nodes/core/core/89-trigger.js");
describe('trigger Node', function() {
describe('trigger node', function() {
beforeEach(function(done) {
helper.startServer(done);
@@ -37,8 +37,8 @@ describe('trigger Node', function() {
n1.should.have.property('name', 'triggerNode');
n1.should.have.property('op1', '1');
n1.should.have.property('op2', '0');
n1.should.have.property('op1type', 'val');
n1.should.have.property('op2type', 'val');
n1.should.have.property('op1type', 'str');
n1.should.have.property('op2type', 'str');
n1.should.have.property('extend', "false");
n1.should.have.property('units', 'ms');
n1.should.have.property('duration', 250);
@@ -74,7 +74,7 @@ describe('trigger Node', function() {
});
it('should output 1 then 0 when triggered (default)', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", duration:20, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
@@ -95,50 +95,66 @@ describe('trigger Node', function() {
});
it('should ignore any other inputs while triggered if extend is false', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", duration:50,wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
var c = 0;
var errored = false;
n2.on("input", function(msg) {
if (c === 0) {
msg.should.have.a.property("payload", '1');
try {
if (c === 0) {
msg.should.have.a.property("payload", '1');
}
else {
msg.should.have.a.property("payload", '0');
}
c+=1;
}
else {
msg.should.have.a.property("payload", '0');
}catch(err) {
errored = true;
done(err);
}
});
setTimeout( function() {
c.should.equal(1);
done();
},500);
if (!errored) {
try {
c.should.equal(2);
done();
} catch(err) {
done(err);
}
}
},100);
n1.emit("input", {payload:null});
setTimeout( function() {
n1.emit("input", {payload:null});
},75);
},10);
setTimeout( function() {
n1.emit("input", {payload:null});
},150);
},30);
});
});
it('should handle true and false as strings and delay of 0', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", op1:"true", op2:"false", duration:30, wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", op1:"true",op1type:"val",op2:"false",op2type:"val",duration:30, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
var c = 0;
n2.on("input", function(msg) {
if (c === 0) {
msg.should.have.a.property("payload", true);
c+=1;
}
else {
msg.should.have.a.property("payload", false);
done();
try {
if (c === 0) {
msg.should.have.a.property("payload", true);
c+=1;
}
else {
msg.should.have.a.property("payload", false);
done();
}
} catch(err) {
done(err);
}
});
n1.emit("input", {payload:null});
@@ -146,21 +162,25 @@ describe('trigger Node', function() {
});
it('should be able to not output anything on first trigger', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", op1type:"nul", op1:"true", op2:"false", duration:30, wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", op1type:"nul", op1:"true",op2:"false",op2type:"val",duration:30, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
var n2 = helper.getNode("n2");
n2.on("input", function(msg) {
msg.should.have.a.property("payload", false);
done();
try {
msg.should.have.a.property("payload", false);
done();
} catch(err) {
done(err);
}
});
n1.emit("input", {payload:null});
});
});
it('should be able to not output anything on second edge', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", op2type:"nul", op1:"true", op2:"false", duration:30, wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", op2type:"nul", op1:"true",op1type:"val", op2:"false", duration:30, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
@@ -173,13 +193,13 @@ describe('trigger Node', function() {
setTimeout( function() {
c.should.equal(1); // should only have had one output.
done();
},500);
},90);
n1.emit("input", {payload:null});
});
});
it('should be able to extend the delay', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"true", op1type:"pay", op1:"false", op2:"true", duration:200, wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"true", op1type:"pay", op1:"false", op2:"true", duration:100, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
@@ -191,9 +211,9 @@ describe('trigger Node', function() {
c += 1;
}
else {
msg.should.have.a.property("payload", true);
msg.should.have.a.property("payload", "true");
//console.log(Date.now() - ss);
(Date.now() - ss).should.be.greaterThan(299);
(Date.now() - ss).should.be.greaterThan(149);
done();
}
});
@@ -201,12 +221,12 @@ describe('trigger Node', function() {
n1.emit("input", {payload:"Hello"});
setTimeout( function() {
n1.emit("input", {payload:null});
},100);
},50);
});
});
it('should be able to extend the delay (but with no 2nd output)', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"true", op1type:"pay", op2type:"nul", op1:"false", op2:"true", duration:200, wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"true", op1type:"pay", op2type:"nul", op1:"false", op2:"true", duration:50, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
@@ -220,7 +240,7 @@ describe('trigger Node', function() {
else {
msg.should.have.a.property("payload", "World");
//console.log(Date.now() - ss);
(Date.now() - ss).should.be.greaterThan(380);
(Date.now() - ss).should.be.greaterThan(70);
done();
}
});
@@ -228,15 +248,15 @@ describe('trigger Node', function() {
n1.emit("input", {payload:"Hello"});
setTimeout( function() {
n1.emit("input", {payload:"Error"});
},100);
},20);
setTimeout( function() {
n1.emit("input", {payload:"World"});
},400);
},80);
});
});
it('should be able to extend the delay and output the 2nd payload', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"true", op1type:"nul", op2type:"payl", op1:"false", op2:"true", duration:200, wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"true", op1type:"nul", op2type:"payl", op1:"false", op2:"true", duration:50, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
@@ -249,7 +269,7 @@ describe('trigger Node', function() {
}
else {
msg.should.have.a.property("payload", "World");
(Date.now() - ss).should.be.greaterThan(380);
(Date.now() - ss).should.be.greaterThan(70);
done();
}
});
@@ -257,15 +277,15 @@ describe('trigger Node', function() {
n1.emit("input", {payload:"Hello"});
setTimeout( function() {
n1.emit("input", {payload:"Goodbye"});
},100);
},20);
setTimeout( function() {
n1.emit("input", {payload:"World"});
},400);
},80);
});
});
it('should be able output the 2nd payload', function(done) {
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"false", op1type:"nul", op2type:"payl", op1:"false", op2:"true", duration:200, wires:[["n2"]] },
var flow = [{"id":"n1", "type":"trigger", "name":"triggerNode", extend:"false", op1type:"nul", op2type:"payl", op1:"false", op2:"true", duration:50, wires:[["n2"]] },
{id:"n2", type:"helper"} ];
helper.load(triggerNode, flow, function() {
var n1 = helper.getNode("n1");
@@ -278,7 +298,7 @@ describe('trigger Node', function() {
}
else {
msg.should.have.a.property("payload", "World");
(Date.now() - ss).should.be.greaterThan(380);
(Date.now() - ss).should.be.greaterThan(70);
done();
}
});
@@ -286,10 +306,10 @@ describe('trigger Node', function() {
n1.emit("input", {payload:"Hello"});
setTimeout( function() {
n1.emit("input", {payload:"Goodbye"});
},100);
},20);
setTimeout( function() {
n1.emit("input", {payload:"World"});
},400);
},80);
});
});
@@ -348,7 +368,7 @@ describe('trigger Node', function() {
});
setTimeout( function() {
if (c === 2) { done(); }
},100);
},20);
n1.emit("input", {payload:null}); // trigger
n1.emit("input", {payload:null}); // blocked
n1.emit("input", {payload:null}); // blocked
@@ -370,7 +390,7 @@ describe('trigger Node', function() {
});
setTimeout( function() {
if (c === 2) { done(); }
},100);
},20);
n1.emit("input", {payload:null}); // trigger
n1.emit("input", {payload:null}); // blocked
n1.emit("input", {payload:null}); // blocked