75 lines
1.9 KiB
JavaScript
75 lines
1.9 KiB
JavaScript
var Chunker = require('../index.js');
|
|
var test = require('tape');
|
|
var concat = require('concat-stream');
|
|
|
|
test('Test flush option', function (t) {
|
|
|
|
t.plan(2);
|
|
|
|
var opts = {
|
|
flush: false,
|
|
encoding: 'utf8'
|
|
}
|
|
|
|
function check(data) {
|
|
t.equals(data, '1234', 'Received only full chunks');
|
|
}
|
|
var chunker = Chunker(4, opts);
|
|
var concatStream = concat(check);
|
|
chunker.pipe(concatStream);
|
|
chunker.write('12');
|
|
chunker.write('34');
|
|
chunker.write('56');
|
|
chunker.end();
|
|
|
|
var optsFlush = {
|
|
flush: true,
|
|
encoding: 'utf8'
|
|
}
|
|
|
|
function checkFlush(data) {
|
|
t.equals(data, '123456', 'Received flush data');
|
|
}
|
|
var chunkerFlush = Chunker(4, optsFlush);
|
|
var concatStreamFlush = concat(checkFlush);
|
|
chunkerFlush.pipe(concatStreamFlush);
|
|
chunkerFlush.write('12');
|
|
chunkerFlush.write('34');
|
|
chunkerFlush.write('56');
|
|
chunkerFlush.end();
|
|
|
|
});
|
|
|
|
test('Test align option', function (t) {
|
|
|
|
t.plan(2);
|
|
|
|
var optsFlushAlign = {
|
|
flush: true,
|
|
align: true,
|
|
encoding: 'utf8'
|
|
}
|
|
|
|
function checkFlushAlign(data) {
|
|
t.equals(data, '12345\0\0\0', 'Received flush data');
|
|
}
|
|
var chunkerFlushAlign = Chunker(4, optsFlushAlign);
|
|
var concatStreamFlushAlign = concat(checkFlushAlign);
|
|
chunkerFlushAlign.pipe(concatStreamFlushAlign);
|
|
chunkerFlushAlign.write('12');
|
|
chunkerFlushAlign.write('34');
|
|
chunkerFlushAlign.write('5');
|
|
chunkerFlushAlign.end();
|
|
|
|
function checkAlignedFlushAlign(data) {
|
|
t.equals(data, '1234', 'Received flush data');
|
|
}
|
|
var chunkerAlignedFlushAlign = Chunker(4, optsFlushAlign);
|
|
var concatStreamAlignedFlushAlign = concat(checkAlignedFlushAlign);
|
|
chunkerAlignedFlushAlign.pipe(concatStreamAlignedFlushAlign);
|
|
chunkerAlignedFlushAlign.write('12');
|
|
chunkerAlignedFlushAlign.write('34');
|
|
chunkerAlignedFlushAlign.end();
|
|
|
|
});
|