summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/shrinkwrap-transitive-dev.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/tap/shrinkwrap-transitive-dev.js')
-rw-r--r--deps/npm/test/tap/shrinkwrap-transitive-dev.js83
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()
+})