
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
const {Buffer:BufferT, DecodeStream, EncodeStream, uint8} = require('../');
const should = require('chai').should();
const concat = require('concat-stream');
describe('Buffer', function() {
describe('decode', function() {
it('should decode', function() {
const stream = new DecodeStream(Buffer.from([0xab, 0xff, 0x1f, 0xb6]));
const buf = new BufferT(2);
buf.decode(stream).should.deep.equal(Buffer.from([0xab, 0xff]));
return buf.decode(stream).should.deep.equal(Buffer.from([0x1f, 0xb6]));
});
return it('should decode with parent key length', function() {
const stream = new DecodeStream(Buffer.from([0xab, 0xff, 0x1f, 0xb6]));
const buf = new BufferT('len');
buf.decode(stream, {len: 3}).should.deep.equal(Buffer.from([0xab, 0xff, 0x1f]));
return buf.decode(stream, {len: 1}).should.deep.equal(Buffer.from([0xb6]));
});
});
describe('size', function() {
it('should return size', function() {
const buf = new BufferT(2);
return buf.size(Buffer.from([0xab, 0xff])).should.equal(2);
});
return it('should use defined length if no value given', function() {
const array = new BufferT(10);
return array.size().should.equal(10);
});
});
return describe('encode', function() {
it('should encode', function(done) {
const stream = new EncodeStream;
stream.pipe(concat(function(buf) {
buf.should.deep.equal(Buffer.from([0xab, 0xff, 0x1f, 0xb6]));
return done();
})
);
const buf = new BufferT(2);
buf.encode(stream, Buffer.from([0xab, 0xff]));
buf.encode(stream, Buffer.from([0x1f, 0xb6]));
return stream.end();
});
return it('should encode length before buffer', function(done) {
const stream = new EncodeStream;
stream.pipe(concat(function(buf) {
buf.should.deep.equal(Buffer.from([2, 0xab, 0xff]));
return done();
})
);
const buf = new BufferT(uint8);
buf.encode(stream, Buffer.from([0xab, 0xff]));
return stream.end();
});
});
});