123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- var tar = require('../')
- var path = require('path')
- var rfile = require('rfile')
- var rimraf = require('rimraf').sync
- var mkdir = require('mkdirp').sync
- var read = require('fs').createReadStream
- var write = require('fs').createWriteStream
- var assert = require('assert')
- beforeEach(function () {
- rimraf(__dirname + '/output')
- })
- afterEach(function () {
- rimraf(__dirname + '/output')
- })
- describe('tarball.pipe(unpack(directory, callback))', function () {
- it('unpacks the tarball into the directory', function (done) {
- read(__dirname + '/fixtures/packed.tar').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
- if (err) return done(err)
- assert.equal(rfile('./output/unpacked/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
- assert.equal(rfile('./output/unpacked/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
- done()
- }))
- })
- it('unpacks the tarball into the directory without deleting existing files', function (done) {
- read(__dirname + '/fixtures/packed-file.txt').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
- if (err) return done(err)
- read(__dirname + '/fixtures/packed.tar').pipe(tar.unpack(__dirname + '/output/unpacked', {keepFiles: true}, function (err) {
- if (err) return done(err)
- assert.equal(rfile('./output/unpacked/index.js'), rfile('./fixtures/packed-file.txt'))
- done()
- }))
- }))
- })
- })
- describe('tarball.pipe(unpack(directory, { strip: 0 }, callback))', function () {
- it('unpacks the tarball into the directory with subdir package', function (done) {
- read(__dirname + '/fixtures/packed.tar').pipe(tar.unpack(__dirname + '/output/unpacked', { strip: 0 } , function (err) {
- if (err) return done(err)
- assert.equal(rfile('./output/unpacked/package/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
- assert.equal(rfile('./output/unpacked/package/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
- done()
- }))
- })
- })
- describe('gziptarball.pipe(unpack(directory, callback))', function () {
- it('unpacks the tarball into the directory', function (done) {
- read(__dirname + '/fixtures/packed.tar.gz').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
- if (err) return done(err)
- assert.equal(rfile('./output/unpacked/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
- assert.equal(rfile('./output/unpacked/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
- done()
- }))
- })
- })
- describe('file.pipe(unpack(directory, callback))', function () {
- it('copies the file into the directory', function (done) {
- read(__dirname + '/fixtures/packed-file.txt').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
- if (err) return done(err)
- assert.equal(rfile('./output/unpacked/index.js'), rfile('./fixtures/packed-file.txt'))
- done()
- }))
- })
- })
- describe('pack(directory).pipe(tarball)', function () {
- it('packs the directory into the output', function (done) {
- var called = false
- mkdir(__dirname + '/output/')
- tar.pack(__dirname + '/fixtures/to-pack').pipe(write(__dirname + '/output/packed.tar.gz'))
- .on('error', function (err) {
- if (called) return
- called = true
- done(err)
- })
- .on('close', function () {
- if (called) return
- called = true
- read(__dirname + '/output/packed.tar.gz').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
- if (err) return done(err)
- assert.equal(rfile('./output/unpacked/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
- assert.equal(rfile('./output/unpacked/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
- done()
- }))
- })
- })
- })
- describe('pack(directory, { fromBase: true }).pipe(tarball)', function () {
- it('packs the directory with input dir as base dir', function (done) {
- var called = false
- mkdir(__dirname + '/output/')
- tar.pack(__dirname + '/fixtures/to-pack', { fromBase: true }).pipe(write(__dirname + '/output/packed.tar.gz'))
- .on('error', function (err) {
- if (called) return
- called = true
- done(err)
- })
- .on('close', function () {
- if (called) return
- called = true
- read(__dirname + '/output/packed.tar.gz').pipe(tar.unpack(__dirname + '/output/unpacked', { strip: 0 }, function (err) {
- if (err) return done(err)
- assert.equal(rfile('./output/unpacked/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
- assert.equal(rfile('./output/unpacked/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
- done()
- }))
- })
- })
- })
|