1 | var tar = require('../')
|
2 | var path = require('path')
|
3 | var rfile = require('rfile')
|
4 | var rimraf = require('rimraf').sync
|
5 | var mkdir = require('mkdirp').sync
|
6 |
|
7 | var read = require('fs').createReadStream
|
8 | var write = require('fs').createWriteStream
|
9 | var assert = require('assert')
|
10 |
|
11 | beforeEach(function () {
|
12 | rimraf(__dirname + '/output')
|
13 | })
|
14 | afterEach(function () {
|
15 | rimraf(__dirname + '/output')
|
16 | })
|
17 | describe('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 | })
|
27 | describe('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 | })
|
37 | describe('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 | })
|
46 | describe('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 |