|
var test = require('tape');
|
var fs = require('fs');
|
var slice = require('./index').slice;
|
var bufferReady = fs.readFileSync('./README.md');
|
|
test('normal test', function(t) {
|
var chunks = [];
|
fs.createReadStream('./README.md')
|
.pipe(slice(0, 10))
|
.on('data', chunks.push.bind(chunks))
|
.on('end', function() {
|
var res = Buffer.concat(chunks);
|
t.equal(res.length, 10);
|
t.equal(bufferEq(res, bufferReady.slice(0, 10)), true);
|
t.end();
|
});
|
});
|
|
test('normal test', function(t) {
|
var chunks = [];
|
fs.createReadStream('./README.md')
|
.pipe(slice(10, 20))
|
.on('data', chunks.push.bind(chunks))
|
.on('end', function() {
|
var res = Buffer.concat(chunks);
|
t.equal(res.length, 10);
|
t.equal(bufferEq(res, bufferReady.slice(10, 20)), true);
|
t.end();
|
});
|
});
|
|
function bufferEq(foo, bar) {
|
if (!Buffer.isBuffer(foo) || !Buffer.isBuffer(bar)) {
|
throw new TypeError('Arguments must be a buffer');
|
}
|
if (foo.length !== bar.length) {
|
return false;
|
}
|
for (var i = 0; i < foo.length; i++) {
|
if (foo[i] !== bar[i]) {
|
return false;
|
}
|
}
|
return true;
|
}
|