Skip to content

Commit

Permalink
Merge pull request #1823 from node-red-hitachi/fix-referenceerror
Browse files Browse the repository at this point in the history
Fix the ReferenceError in change node
  • Loading branch information
knolleary committed Jul 19, 2018
2 parents 6bccdd0 + e675512 commit 8226f1f
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
8 changes: 3 additions & 5 deletions nodes/core/logic/15-change.js
Expand Up @@ -143,7 +143,7 @@ module.exports = function(RED) {
if (rule.fromt === "msg") {
resolve(RED.util.getMessageProperty(msg,rule.from));
} else if (rule.fromt === 'flow' || rule.fromt === 'global') {
var contextKey = RED.util.parseContextStore(rule.from);
var contextKey = RED.util.parseContextStore(rule.from);
node.context()[rule.fromt].get(contextKey.key, contextKey.store, (err,fromValue) => {
if (err) {
reject(err);
Expand All @@ -166,12 +166,10 @@ module.exports = function(RED) {
try {
fromRE = new RegExp(fromRE, "g");
} catch (e) {
reject(new Error(RED._("change.errors.invalid-from",{error:e.message})));
return;
return Promise.reject(new Error(RED._("change.errors.invalid-from",{error:e.message})));
}
} else {
reject(new Error(RED._("change.errors.invalid-from",{error:"unsupported type: "+(typeof fromValue)})));
return;
return Promise.reject(new Error(RED._("change.errors.invalid-from",{error:"unsupported type: "+(typeof fromValue)})));
}
return {
fromType,
Expand Down
19 changes: 19 additions & 0 deletions test/nodes/core/logic/15-change_spec.js
Expand Up @@ -1272,6 +1272,25 @@ describe('change Node', function() {
});
});

it('reports invalid fromValue', function(done) {
var flow = [{"id":"changeNode1","type":"change",rules:[{"t":"change","p":"payload","from":"null","fromt":"msg","to":"abc","tot":"str"}],"name":"changeNode","wires":[["helperNode1"]]},
{id:"helperNode1", type:"helper", wires:[]}];
helper.load(changeNode, flow, function() {
var changeNode1 = helper.getNode("changeNode1");
setTimeout(function() {
var logEvents = helper.log().args.filter(function (evt) {
return evt[0].type == "change";
});
logEvents.should.have.length(1);
var msg = logEvents[0][0];
msg.should.have.property('level', helper.log().ERROR);
msg.should.have.property('id', 'changeNode1');
done();
},25);
changeNode1.receive({payload:"",null:null});
});
});

describe('env var', function() {
before(function() {
process.env.NR_TEST_A = 'foo';
Expand Down

0 comments on commit 8226f1f

Please sign in to comment.