Skip to content

Commit 8368815

Browse files
author
Dave Conway-Jones
committed
extra change tests for partial and complete match
to close node-red#934
1 parent 9c6295d commit 8368815

1 file changed

Lines changed: 63 additions & 2 deletions

File tree

test/nodes/core/logic/15-change_spec.js

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,27 @@ describe('change Node', function() {
7777
});
7878
});
7979

80+
it('sets the value and type of the message property', function(done) {
81+
var flow = [{"id":"changeNode1","type":"change",rules:[{ "t": "set", "p": "payload", "pt": "msg", "to": "12345", "tot": "num" }],"reg":false,"name":"changeNode","wires":[["helperNode1"]]},
82+
{id:"helperNode1", type:"helper", wires:[]}];
83+
helper.load(changeNode, flow, function() {
84+
var changeNode1 = helper.getNode("changeNode1");
85+
var helperNode1 = helper.getNode("helperNode1");
86+
var rule = helper.getNode("changeNode1").rules[0];
87+
helperNode1.on("input", function(msg) {
88+
try {
89+
msg.payload.should.equal(12345);
90+
var t = typeof(msg.payload);
91+
t.should.equal("number");
92+
done();
93+
} catch(err) {
94+
done(err);
95+
}
96+
});
97+
changeNode1.receive({payload:"changeMe"});
98+
});
99+
});
100+
80101
it('sets the value of an already set multi-level message property', function(done) {
81102
var flow = [{"id":"changeNode1","type":"change","action":"replace","property":"foo.bar","from":"","to":"bar","reg":false,"name":"changeNode","wires":[["helperNode1"]]},
82103
{id:"helperNode1", type:"helper", wires:[]}];
@@ -317,6 +338,48 @@ describe('change Node', function() {
317338
});
318339
});
319340

341+
it('changes the value and doesnt change type of the message property for partial match', function(done) {
342+
var flow = [{"id":"changeNode1","type":"change",rules:[{ "t": "change", "p": "payload", "pt": "msg", "from": "123", "fromt": "str", "to": "456", "tot": "num" }],"reg":false,"name":"changeNode","wires":[["helperNode1"]]},
343+
{id:"helperNode1", type:"helper", wires:[]}];
344+
helper.load(changeNode, flow, function() {
345+
var changeNode1 = helper.getNode("changeNode1");
346+
var helperNode1 = helper.getNode("helperNode1");
347+
var rule = helper.getNode("changeNode1").rules[0];
348+
helperNode1.on("input", function(msg) {
349+
try {
350+
msg.payload.should.equal("Change456Me");
351+
var t = typeof(msg.payload);
352+
t.should.equal("string");
353+
done();
354+
} catch(err) {
355+
done(err);
356+
}
357+
});
358+
changeNode1.receive({payload:"Change123Me"});
359+
});
360+
});
361+
362+
it('changes the value and type of the message property if a complete match', function(done) {
363+
var flow = [{"id":"changeNode1","type":"change",rules:[{ "t": "change", "p": "payload", "pt": "msg", "from": "123", "fromt": "str", "to": "456", "tot": "num" }],"reg":false,"name":"changeNode","wires":[["helperNode1"]]},
364+
{id:"helperNode1", type:"helper", wires:[]}];
365+
helper.load(changeNode, flow, function() {
366+
var changeNode1 = helper.getNode("changeNode1");
367+
var helperNode1 = helper.getNode("helperNode1");
368+
var rule = helper.getNode("changeNode1").rules[0];
369+
helperNode1.on("input", function(msg) {
370+
try {
371+
msg.payload.should.equal(456);
372+
var t = typeof(msg.payload);
373+
t.should.equal("number");
374+
done();
375+
} catch(err) {
376+
done(err);
377+
}
378+
});
379+
changeNode1.receive({payload:"123"});
380+
});
381+
});
382+
320383
it('changes the value of a multi-level message property', function(done) {
321384
var flow = [{"id":"changeNode1","type":"change","action":"change","property":"foo.bar","from":"Hello","to":"Goodbye","reg":false,"name":"changeNode","wires":[["helperNode1"]]},
322385
{id:"helperNode1", type:"helper", wires:[]}];
@@ -627,8 +690,6 @@ describe('change Node', function() {
627690
});
628691
});
629692

630-
//[{"id":"d5df2b27.7443a8","type":"change","z":"b0e25b28.3c7e88","name":"","rules":[{"t":"move","p":"topic","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":242.5,"y":541,"wires":[[]]}]
631-
632693
describe("#move", function() {
633694
it('moves the value of the message property', function(done) {
634695
var flow = [{"id":"changeNode1","type":"change","rules":[{"t":"move","p":"topic","pt":"msg","to":"payload","tot":"msg"}],"name":"changeNode","wires":[["helperNode1"]]},

0 commit comments

Comments
 (0)