diff options
Diffstat (limited to 'deps/npm/test/tap/cache-ls-filenames.js')
-rw-r--r-- | deps/npm/test/tap/cache-ls-filenames.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/deps/npm/test/tap/cache-ls-filenames.js b/deps/npm/test/tap/cache-ls-filenames.js new file mode 100644 index 0000000000..c67bca25f3 --- /dev/null +++ b/deps/npm/test/tap/cache-ls-filenames.js @@ -0,0 +1,51 @@ +var t = require('tap') +var path = require('path') +var fs = require('fs') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var spawn = require('child_process').spawn +var npm = require.resolve('../../bin/npm-cli.js') +var dir = path.resolve(__dirname, 'cache-ls-filenames') +var node = process.execPath + +t.test('setup', function (t) { + rimraf.sync(dir) + mkdirp.sync(dir + '/a/b/c/d') + for (var i = 0; i < 5; i++) { + fs.writeFileSync(dir + '/file-' + i, 'x\n') + fs.writeFileSync(dir + '/a/b/file-' + i, 'x\n') + } + t.end() +}) + +function test (t, args) { + var child = spawn(node, [npm, 'cache', 'ls', '--cache=' + dir].concat(args)) + var out = '' + child.stdout.on('data', function (c) { + out += c + }) + child.on('close', function (code, signal) { + t.equal(code, 0) + t.equal(signal, null) + out.trim().split(/[\n\r]+/).map(function (filename) { + return filename.replace(/^~/, process.env.HOME) + }).forEach(function (file) { + // verify that all exist + t.ok(fs.existsSync(file), 'exists: ' + file) + }) + t.end() + }) +} + +t.test('without path arg', function (t) { + test(t, []) +}) + +t.test('with path arg', function (t) { + test(t, ['a']) +}) + +t.test('cleanup', function (t) { + rimraf.sync(dir) + t.end() +}) |