You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
|
|
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;
|
|
}
|