UNPKG

2.62 kBJavaScriptView Raw
1var tar = require('../')
2var path = require('path')
3var rfile = require('rfile')
4var rimraf = require('rimraf').sync
5var mkdir = require('mkdirp').sync
6
7var read = require('fs').createReadStream
8var write = require('fs').createWriteStream
9var assert = require('assert')
10
11beforeEach(function () {
12 rimraf(__dirname + '/output')
13})
14afterEach(function () {
15 rimraf(__dirname + '/output')
16})
17describe('tarball.pipe(unpack(directory, callback))', function () {
18 it('unpacks the tarball into the directory', function (done) {
19 read(__dirname + '/fixtures/packed.tar').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
20 if (err) return done(err)
21 assert.equal(rfile('./output/unpacked/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
22 assert.equal(rfile('./output/unpacked/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
23 done()
24 }))
25 })
26})
27describe('gziptarball.pipe(unpack(directory, callback))', function () {
28 it('unpacks the tarball into the directory', function (done) {
29 read(__dirname + '/fixtures/packed.tar.gz').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
30 if (err) return done(err)
31 assert.equal(rfile('./output/unpacked/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
32 assert.equal(rfile('./output/unpacked/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
33 done()
34 }))
35 })
36})
37describe('file.pipe(unpack(directory, callback))', function () {
38 it('copies the file into the directory', function (done) {
39 read(__dirname + '/fixtures/packed-file.txt').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
40 if (err) return done(err)
41 assert.equal(rfile('./output/unpacked/index.js'), rfile('./fixtures/packed-file.txt'))
42 done()
43 }))
44 })
45})
46describe('pack(directory).pipe(tarball)', function () {
47 it('packs the directory into the output', function (done) {
48 var called = false
49 mkdir(__dirname + '/output/')
50 tar.pack(__dirname + '/fixtures/to-pack').pipe(write(__dirname + '/output/packed.tar.gz'))
51 .on('error', function (err) {
52 if (called) return
53 called = true
54 done(err)
55 })
56 .on('close', function () {
57 if (called) return
58 called = true
59 read(__dirname + '/output/packed.tar.gz').pipe(tar.unpack(__dirname + '/output/unpacked', function (err) {
60 if (err) return done(err)
61 assert.equal(rfile('./output/unpacked/bar.txt'), rfile('./fixtures/to-pack/bar.txt'))
62 assert.equal(rfile('./output/unpacked/foo.txt'), rfile('./fixtures/to-pack/foo.txt'))
63 done()
64 }))
65 })
66 })
67})
\No newline at end of file