diff options
Diffstat (limited to 'deps/npm/test/tap/shrinkwrap-transitive-dev.js')
-rw-r--r-- | deps/npm/test/tap/shrinkwrap-transitive-dev.js | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/deps/npm/test/tap/shrinkwrap-transitive-dev.js b/deps/npm/test/tap/shrinkwrap-transitive-dev.js new file mode 100644 index 0000000000..80a38f7f9e --- /dev/null +++ b/deps/npm/test/tap/shrinkwrap-transitive-dev.js @@ -0,0 +1,83 @@ +'use strict' +var fs = require('fs') +var path = require('path') +var test = require('tap').test +var Tacks = require('tacks') +var common = require('../common-tap.js') +var File = Tacks.File +var Dir = Tacks.Dir + +var testname = path.basename(__filename, '.js') +var testdir = path.join(__dirname, testname) +var cachedir = path.join(testdir, 'cache') +var swfile = path.join(testdir, 'npm-shrinkwrap.json') +var fixture = new Tacks( + Dir({ + cache: Dir(), + mods: Dir({ + moda: Dir({ + 'package.json': File({ + name: 'moda', + version: '1.0.0', + dependencies: { + modb: '../modb' + } + }) + }), + modb: Dir({ + 'package.json': File({ + name: 'modb', + version: '1.0.0' + }) + }) + }), + 'package.json': File({ + name: testname, + version: '1.0.0', + devDependencies: { + moda: 'file:mods/moda' + } + }) + }) +) + +function setup () { + cleanup() + fixture.create(testdir) +} + +function cleanup () { + fixture.remove(testdir) +} + +test('setup', function (t) { + setup() + common.npm(['install', '--cache=' + cachedir], {cwd: testdir}, function (err, code, stdout, stderr) { + if (err) throw err + t.is(code, 0, 'setup ok') + t.comment(stdout.trim()) + t.comment(stderr.trim()) + t.end() + }) +}) + +test('transitive-deps-of-dev-deps', function (t) { + common.npm(['shrinkwrap', '--loglevel=error'], {cwd: testdir}, function (err, code, stdout, stderr) { + if (err) throw err + t.is(code, 0, 'shrinkwrap ran ok') + t.comment(stdout.trim()) + t.comment(stderr.trim()) + try { + var shrinkwrap = JSON.parse(fs.readFileSync(swfile)) + t.isDeeply(shrinkwrap.dependencies, {}, 'empty shrinkwrap') + } catch (ex) { + t.ifError(ex) + } + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) |