diff --git a/nodes/core/logic/17-split.js b/nodes/core/logic/17-split.js index 8f86dca44..73ec05f43 100644 --- a/nodes/core/logic/17-split.js +++ b/nodes/core/logic/17-split.js @@ -93,7 +93,7 @@ module.exports = function(RED) { RED.util.setMessageProperty(group.msg,node.property,group.payload); } if (group.msg.hasOwnProperty('parts') && group.msg.parts.hasOwnProperty('parts')) { - group.msg.parts = group.msg.parts; + group.msg.parts = group.msg.parts.parts; } else { delete group.msg.parts; } diff --git a/test/nodes/core/logic/17-split_spec.js b/test/nodes/core/logic/17-split_spec.js index 0871a4f8b..cf394639b 100644 --- a/test/nodes/core/logic/17-split_spec.js +++ b/test/nodes/core/logic/17-split_spec.js @@ -359,4 +359,27 @@ describe('JOIN node', function() { n1.receive({payload:"b", parts:{type:'string',index:1, count:4, ch:"", id:555}}); }); }); + + it('should allow chained split-split-join-join sequences', function(done) { + var flow = [{id:"s1", type:"split",wires:[["s2"]]}, + {id:"s2", type:"split",wires:[["j1"]]}, + {id:"j1", type:"join", mode:"auto", wires:[["j2"]]}, + {id:"j2", type:"join", mode:"auto", wires:[["n2"]]}, + {id:"n2", type:"helper"}]; + helper.load(joinNode, flow, function() { + var s1 = helper.getNode("s1"); + var n2 = helper.getNode("n2"); + n2.on("input", function(msg) { + try { + msg.should.have.property("payload"); + msg.payload.should.eql([[1,2,3],"a\nb\nc",[7,8,9]]); + done(); + } + catch(e) { done(e); } + }); + s1.receive({payload:[[1,2,3],"a\nb\nc",[7,8,9]]}); + }); + }) + + });