UNPKG

serialport-v5

Version:

fork with electron support of Node.js package to access serial ports. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!

110 lines (107 loc) 4.63 kB
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() })) }) }) })