From 5b137c457b2c2b5c1c8eb0b3cdb6271eab93f503 Mon Sep 17 00:00:00 2001 From: Kazuhito Yokoi Date: Wed, 18 Oct 2017 06:17:27 +0900 Subject: [PATCH] Fix invalid from property error in change node (#1442) * Fix invalid from property error in change node * Empty commit to run test cases again --- nodes/core/logic/15-change.js | 4 +-- test/nodes/core/logic/15-change_spec.js | 38 +++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/nodes/core/logic/15-change.js b/nodes/core/logic/15-change.js index 01ad140de..ae50394ed 100644 --- a/nodes/core/logic/15-change.js +++ b/nodes/core/logic/15-change.js @@ -129,9 +129,9 @@ module.exports = function(RED) { if (rule.fromt === 'msg' || rule.fromt === 'flow' || rule.fromt === 'global') { if (rule.fromt === "msg") { fromValue = RED.util.getMessageProperty(msg,rule.from); - } else if (rule.tot === 'flow') { + } else if (rule.fromt === 'flow') { fromValue = node.context().flow.get(rule.from); - } else if (rule.tot === 'global') { + } else if (rule.fromt === 'global') { fromValue = node.context().global.get(rule.from); } if (typeof fromValue === 'number' || fromValue instanceof Number) { diff --git a/test/nodes/core/logic/15-change_spec.js b/test/nodes/core/logic/15-change_spec.js index f3b2f39bd..99fc130db 100644 --- a/test/nodes/core/logic/15-change_spec.js +++ b/test/nodes/core/logic/15-change_spec.js @@ -541,6 +541,44 @@ describe('change Node', function() { }); }); + it('changes the value using flow context property', function(done) { + var flow = [{"id":"changeNode1","type":"change",rules:[{"t":"change","p":"payload","from":"topic","to":"123","fromt":"flow","tot":"str"}],"name":"changeNode","wires":[["helperNode1"]],"z":"flow"}, + {id:"helperNode1", type:"helper", wires:[]}]; + helper.load(changeNode, flow, function() { + var changeNode1 = helper.getNode("changeNode1"); + var helperNode1 = helper.getNode("helperNode1"); + helperNode1.on("input", function(msg) { + try { + msg.payload.should.equal("abc123abc"); + done(); + } catch(err) { + done(err); + } + }); + changeNode1.context().flow.set("topic","ABC"); + changeNode1.receive({payload:"abcABCabc"}); + }); + }); + + it('changes the value using global context property', function(done) { + var flow = [{"id":"changeNode1","type":"change",rules:[{"t":"change","p":"payload","from":"topic","to":"123","fromt":"global","tot":"str"}],"name":"changeNode","wires":[["helperNode1"]]}, + {id:"helperNode1", type:"helper", wires:[]}]; + helper.load(changeNode, flow, function() { + var changeNode1 = helper.getNode("changeNode1"); + var helperNode1 = helper.getNode("helperNode1"); + helperNode1.on("input", function(msg) { + try { + msg.payload.should.equal("abc123abc"); + done(); + } catch(err) { + done(err); + } + }); + changeNode1.context().global.set("topic","ABC"); + changeNode1.receive({payload:"abcABCabc"}); + }); + }); + it('changes the value using number - string payload', function(done) { var flow = [{"id":"changeNode1","type":"change",rules:[{"t":"change","p":"payload","from":"123","to":"456","fromt":"num","tot":"str"}],"name":"changeNode","wires":[["helperNode1"]]}, {id:"helperNode1", type:"helper", wires:[]}];