var test = require('tape') var tar = require('../index') var fixtures = require('./fixtures') var concat = require('concat-stream') var fs = require('fs') test('one-file', function(t) { t.plan(2) var pack = tar.pack() pack.entry({ name:'test.txt', mtime:new Date(1387580181000), mode:0644, uname:'maf', gname:'staff', uid:501, gid:20 }, 'hello world\n') pack.finalize() pack.pipe(concat(function(data) { t.same(data.length & 511, 0) t.deepEqual(data, fs.readFileSync(fixtures.ONE_FILE_TAR)) })) }) test('multi-file', function(t) { t.plan(2) var pack = tar.pack() pack.entry({ name:'file-1.txt', mtime:new Date(1387580181000), mode:0644, uname:'maf', gname:'staff', uid:501, gid:20 }, 'i am file-1\n') pack.entry({ name:'file-2.txt', mtime:new Date(1387580181000), mode:0644, size:12, uname:'maf', gname:'staff', uid:501, gid:20 }).end('i am file-2\n') pack.finalize() pack.pipe(concat(function(data) { t.same(data.length & 511, 0) t.deepEqual(data, fs.readFileSync(fixtures.MULTI_FILE_TAR)) })) }) test('types', function(t) { t.plan(2) var pack = tar.pack() pack.entry({ name:'directory', mtime:new Date(1387580181000), type:'directory', mode:0755, uname:'maf', gname:'staff', uid:501, gid:20 }) pack.entry({ name:'directory-link', mtime:new Date(1387580181000), type:'symlink', linkname: 'directory', mode:0755, uname:'maf', gname:'staff', uid:501, gid:20 }) pack.finalize() pack.pipe(concat(function(data) { t.equal(data.length & 511, 0) t.deepEqual(data, fs.readFileSync(fixtures.TYPES_TAR)) })) }) test('long-name', function(t) { t.plan(2) var pack = tar.pack() pack.entry({ name:'my/file/is/longer/than/100/characters/and/should/use/the/prefix/header/foobarbaz/foobarbaz/foobarbaz/foobarbaz/foobarbaz/foobarbaz/filename.txt', mtime:new Date(1387580181000), type:'file', mode:0644, uname:'maf', gname:'staff', uid:501, gid:20 }, 'hello long name\n') pack.finalize() pack.pipe(concat(function(data) { t.equal(data.length & 511, 0) t.deepEqual(data, fs.readFileSync(fixtures.LONG_NAME_TAR)) })) }) test('unicode', function(t) { t.plan(2) var pack = tar.pack() pack.entry({ name:'høstål.txt', mtime:new Date(1387580181000), type:'file', mode:0644, uname:'maf', gname:'staff', uid:501, gid:20 }, 'høllø\n') pack.finalize() pack.pipe(concat(function(data) { t.equal(data.length & 511, 0) t.deepEqual(data, fs.readFileSync(fixtures.UNICODE_TAR)) })) })