test.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. var test = require('tape');
  2. var fs = require('fs');
  3. var slice = require('./index').slice;
  4. var bufferReady = fs.readFileSync('./README.md');
  5. test('normal test', function(t) {
  6. var chunks = [];
  7. fs.createReadStream('./README.md')
  8. .pipe(slice(0, 10))
  9. .on('data', chunks.push.bind(chunks))
  10. .on('end', function() {
  11. var res = Buffer.concat(chunks);
  12. t.equal(res.length, 10);
  13. t.equal(bufferEq(res, bufferReady.slice(0, 10)), true);
  14. t.end();
  15. });
  16. });
  17. test('normal test', function(t) {
  18. var chunks = [];
  19. fs.createReadStream('./README.md')
  20. .pipe(slice(10, 20))
  21. .on('data', chunks.push.bind(chunks))
  22. .on('end', function() {
  23. var res = Buffer.concat(chunks);
  24. t.equal(res.length, 10);
  25. t.equal(bufferEq(res, bufferReady.slice(10, 20)), true);
  26. t.end();
  27. });
  28. });
  29. function bufferEq(foo, bar) {
  30. if (!Buffer.isBuffer(foo) || !Buffer.isBuffer(bar)) {
  31. throw new TypeError('Arguments must be a buffer');
  32. }
  33. if (foo.length !== bar.length) {
  34. return false;
  35. }
  36. for (var i = 0; i < foo.length; i++) {
  37. if (foo[i] !== bar[i]) {
  38. return false;
  39. }
  40. }
  41. return true;
  42. }