mirror of
https://github.com/node-red/node-red.git
synced 2025-03-01 10:36:34 +00:00
Add buffer joiner mode to Join node
This commit is contained in:
@@ -69,7 +69,7 @@ describe('SPLIT node', function() {
|
||||
msg.parts.should.have.property("count",2);
|
||||
msg.parts.should.have.property("type","array");
|
||||
msg.parts.should.have.property("index");
|
||||
msg.payload.should.be.an.Array;
|
||||
msg.payload.should.be.an.Array();
|
||||
if (msg.parts.index === 0) { msg.payload.length.should.equal(3); }
|
||||
if (msg.parts.index === 1) { msg.payload.length.should.equal(1); done(); }
|
||||
});
|
||||
@@ -213,16 +213,20 @@ describe('SPLIT node', function() {
|
||||
var sn1 = helper.getNode("sn1");
|
||||
var sn2 = helper.getNode("sn2");
|
||||
sn2.on("input", function(msg) {
|
||||
//console.log(msg);
|
||||
msg.should.have.property("parts");
|
||||
msg.payload.should.be.a.Buffer;
|
||||
msg.parts.should.have.property("count",4);
|
||||
msg.parts.should.have.property("index");
|
||||
msg.parts.should.have.property("type","buffer");
|
||||
if (msg.parts.index === 0) { msg.payload.toString().should.equal("12"); }
|
||||
if (msg.parts.index === 1) { msg.payload.toString().should.equal("34"); }
|
||||
if (msg.parts.index === 2) { msg.payload.toString().should.equal("56"); }
|
||||
if (msg.parts.index === 3) { msg.payload.toString().should.equal("78"); done(); }
|
||||
try {
|
||||
//console.log(msg);
|
||||
msg.should.have.property("parts");
|
||||
Buffer.isBuffer(msg.payload).should.be.true();
|
||||
msg.parts.should.have.property("count",4);
|
||||
msg.parts.should.have.property("index");
|
||||
msg.parts.should.have.property("type","buffer");
|
||||
if (msg.parts.index === 0) { msg.payload.toString().should.equal("12"); }
|
||||
if (msg.parts.index === 1) { msg.payload.toString().should.equal("34"); }
|
||||
if (msg.parts.index === 2) { msg.payload.toString().should.equal("56"); }
|
||||
if (msg.parts.index === 3) { msg.payload.toString().should.equal("78"); done(); }
|
||||
} catch(err) {
|
||||
done(err);
|
||||
}
|
||||
});
|
||||
var b = new Buffer.from("12345678");
|
||||
sn1.receive({payload:b});
|
||||
@@ -236,14 +240,17 @@ describe('SPLIT node', function() {
|
||||
var sn1 = helper.getNode("sn1");
|
||||
var sn2 = helper.getNode("sn2");
|
||||
sn2.on("input", function(msg) {
|
||||
//console.log(msg);
|
||||
msg.should.have.property("parts");
|
||||
msg.payload.should.be.a.Buffer;
|
||||
msg.parts.should.have.property("index");
|
||||
msg.parts.should.have.property("type","buffer");
|
||||
if (msg.parts.index === 0) { msg.payload.toString().should.equal("123"); }
|
||||
if (msg.parts.index === 1) { msg.payload.toString().should.equal("123"); }
|
||||
if (msg.parts.index === 2) { msg.payload.toString().should.equal("123"); done(); }
|
||||
try {
|
||||
msg.should.have.property("parts");
|
||||
Buffer.isBuffer(msg.payload).should.be.true();
|
||||
msg.parts.should.have.property("index");
|
||||
msg.parts.should.have.property("type","buffer");
|
||||
if (msg.parts.index === 0) { msg.payload.toString().should.equal("123"); }
|
||||
if (msg.parts.index === 1) { msg.payload.toString().should.equal("123"); }
|
||||
if (msg.parts.index === 2) { msg.payload.toString().should.equal("123"); done(); }
|
||||
} catch(err) {
|
||||
done(err);
|
||||
}
|
||||
});
|
||||
var b1 = new Buffer.from("123412");
|
||||
var b2 = new Buffer.from("341234");
|
||||
@@ -296,7 +303,26 @@ describe('JOIN node', function() {
|
||||
n1.receive({payload:"D", parts:{id:1, type:"string", ch:",", index:3, count:4}});
|
||||
});
|
||||
});
|
||||
|
||||
it('should join bits of string back together automatically with a buffer joiner', function(done) {
|
||||
var flow = [{id:"n1", type:"join", wires:[["n2"]], joiner:"[44]", joinerType:"bin", build:"string", mode:"auto"},
|
||||
{id:"n2", type:"helper"}];
|
||||
helper.load(joinNode, flow, function() {
|
||||
var n1 = helper.getNode("n1");
|
||||
var n2 = helper.getNode("n2");
|
||||
n2.on("input", function(msg) {
|
||||
try {
|
||||
msg.should.have.property("payload");
|
||||
msg.payload.should.equal("A,B,C,D");
|
||||
done();
|
||||
}
|
||||
catch(e) {done(e);}
|
||||
});
|
||||
n1.receive({payload:"A", parts:{id:1, type:"string", ch:",", index:0, count:4}});
|
||||
n1.receive({payload:"B", parts:{id:1, type:"string", ch:",", index:1, count:4}});
|
||||
n1.receive({payload:"C", parts:{id:1, type:"string", ch:",", index:2, count:4}});
|
||||
n1.receive({payload:"D", parts:{id:1, type:"string", ch:",", index:3, count:4}});
|
||||
});
|
||||
});
|
||||
it('should join bits of buffer back together automatically', function(done) {
|
||||
var flow = [{id:"n1", type:"join", wires:[["n2"]], joiner:",", build:"buffer", mode:"auto"},
|
||||
{id:"n2", type:"helper"}];
|
||||
@@ -306,7 +332,7 @@ describe('JOIN node', function() {
|
||||
n2.on("input", function(msg) {
|
||||
try {
|
||||
msg.should.have.property("payload");
|
||||
msg.should.be.a.Buffer;
|
||||
Buffer.isBuffer(msg.payload).should.be.true();
|
||||
msg.payload.toString().should.equal("A-B-C-D");
|
||||
done();
|
||||
}
|
||||
|
Reference in New Issue
Block a user