diff options
author | Kat Marchán <kzm@sykosomatic.org> | 2017-05-09 14:46:02 -0700 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2017-05-23 19:39:43 +0200 |
commit | c0d858f8bb8ba5212548da2fba6a7bc02db0462b (patch) | |
tree | 99f043ec5aec3f5150a2aed0f62597234b158140 /deps/npm/test/need-npm5-update/shrinkwrap-dev-dep-cycle.js | |
parent | 994617370e8e66f3ea9488fec32fd912e7902396 (diff) | |
download | android-node-v8-c0d858f8bb8ba5212548da2fba6a7bc02db0462b.tar.gz android-node-v8-c0d858f8bb8ba5212548da2fba6a7bc02db0462b.tar.bz2 android-node-v8-c0d858f8bb8ba5212548da2fba6a7bc02db0462b.zip |
deps: upgrade npm beta to 5.0.0-beta.56
PR-URL: https://github.com/nodejs/node/pull/12936
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'deps/npm/test/need-npm5-update/shrinkwrap-dev-dep-cycle.js')
-rw-r--r-- | deps/npm/test/need-npm5-update/shrinkwrap-dev-dep-cycle.js | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/deps/npm/test/need-npm5-update/shrinkwrap-dev-dep-cycle.js b/deps/npm/test/need-npm5-update/shrinkwrap-dev-dep-cycle.js new file mode 100644 index 0000000000..8e4155d8ac --- /dev/null +++ b/deps/npm/test/need-npm5-update/shrinkwrap-dev-dep-cycle.js @@ -0,0 +1,102 @@ +'use strict' +var fs = require('fs') +var path = require('path') +var test = require('tap').test +var Tacks = require('tacks') +var File = Tacks.File +var Dir = Tacks.Dir +var common = require('../common-tap.js') +var testdir = path.join(__dirname, path.basename(__filename, '.js')) + +var fixture = new Tacks( + Dir({ + node_modules: Dir({ + 'a': Dir({ + 'package.json': File({ + _requested: { + rawSpec: 'file:///mods/a' + }, + dependencies: { + 'b': 'file:///mods/b' + }, + name: 'a', + version: '1.0.0' + }) + }), + 'b': Dir({ + 'package.json': File({ + _requested: { + rawSpec: 'file:///mods/b' + }, + dependencies: { + 'a': 'file:///mods/a' + }, + name: 'b', + version: '1.0.0' + }) + }) + }), + 'package.json': File({ + name: 'test', + version: '1.0.0', + devDependencies: { + 'a': 'file:///mods/a' + } + }) + }) +) + +var expectedShrinkwrap = { + name: 'test', + version: '1.0.0', + dependencies: { + a: { + version: '1.0.0', + dev: true + }, + b: { + version: '1.0.0', + dev: true + } + } +} + +function setup () { + cleanup() + fixture.create(testdir) +} + +function cleanup () { + fixture.remove(testdir) +} + +function readJson (file) { + try { + var contents = fs.readFileSync(file) + return JSON.parse(contents) + } catch (ex) { + return ex + } +} + +test('setup', function (t) { + setup() + t.end() +}) + +test('shrinkwrap cycle in dev deps', function (t) { + common.npm(['shrinkwrap', '--only=prod'], {cwd: testdir}, function (err, code, stdout, stderr) { + if (err) throw err + t.is(code, 0, 'result code = ok') + t.comment(stdout.trim()) + t.comment(stderr.trim()) + var actualShrinkwrap = readJson(path.join(testdir, 'npm-shrinkwrap.json')) + t.isDeeply(actualShrinkwrap, expectedShrinkwrap, 'shrinkwrap is right') + t.end() + }) +}) + +test('cleanup', function (t) { + cleanup() + t.end() +}) |