pipeSingleEntry.js 948 B

1234567891011121314151617181920212223242526272829
  1. 'use strict';
  2. var test = require('tap').test;
  3. var fs = require('fs');
  4. var path = require('path');
  5. var temp = require('temp');
  6. var streamBuffers = require("stream-buffers");
  7. var unzip = require('../');
  8. test("pipe a single file entry out of a zip", function (t) {
  9. var archive = path.join(__dirname, '../testData/compressed-standard/archive.zip');
  10. fs.createReadStream(archive)
  11. .pipe(unzip.Parse())
  12. .on('entry', function(entry) {
  13. if (entry.path === 'file.txt') {
  14. var writableStream = new streamBuffers.WritableStreamBuffer();
  15. writableStream.on('close', function () {
  16. var str = writableStream.getContentsAsString('utf8');
  17. var fileStr = fs.readFileSync(path.join(__dirname, '../testData/compressed-standard/inflated/file.txt'), 'utf8')
  18. t.equal(str, fileStr);
  19. t.end();
  20. });
  21. entry.pipe(writableStream);
  22. } else {
  23. entry.autodrain();
  24. }
  25. });
  26. });