summaryrefslogtreecommitdiff
path: root/deps/npm/test/need-npm5-update/outdated-depth-deep.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/need-npm5-update/outdated-depth-deep.js')
-rw-r--r--deps/npm/test/need-npm5-update/outdated-depth-deep.js92
1 files changed, 92 insertions, 0 deletions
diff --git a/deps/npm/test/need-npm5-update/outdated-depth-deep.js b/deps/npm/test/need-npm5-update/outdated-depth-deep.js
new file mode 100644
index 0000000000..14d4f1faf8
--- /dev/null
+++ b/deps/npm/test/need-npm5-update/outdated-depth-deep.js
@@ -0,0 +1,92 @@
+var common = require('../common-tap')
+var path = require('path')
+var test = require('tap').test
+var rimraf = require('rimraf')
+var mr = require('npm-registry-mock')
+var pkg = path.resolve(__dirname, 'outdated-depth-deep')
+var cache = path.resolve(pkg, 'cache')
+
+var osenv = require('osenv')
+var mkdirp = require('mkdirp')
+var fs = require('fs')
+
+var pj = JSON.stringify({
+ 'name': 'whatever',
+ 'description': 'yeah idk',
+ 'version': '1.2.3',
+ 'main': 'index.js',
+ 'dependencies': {
+ 'underscore': '1.3.1',
+ 'npm-test-peer-deps': '0.0.0'
+ },
+ 'repository': 'git://github.com/luk-/whatever'
+}, null, 2)
+
+function cleanup () {
+ process.chdir(osenv.tmpdir())
+ rimraf.sync(pkg)
+}
+
+function setup () {
+ mkdirp.sync(pkg)
+ process.chdir(pkg)
+ fs.writeFileSync(path.resolve(pkg, 'package.json'), pj)
+}
+
+test('setup', function (t) {
+ cleanup()
+ setup()
+ t.end()
+})
+
+test('outdated depth deep (9999)', function (t) {
+ var conf = [
+ '--registry', common.registry,
+ '--cache', cache
+ ]
+
+ var server
+ mr({ port: common.port }, thenTopLevelInstall)
+
+ function thenTopLevelInstall (err, s) {
+ if (err) throw err
+ server = s
+ common.npm(conf.concat(['install', '.']), {cwd: pkg}, thenDeepInstall)
+ }
+
+ function thenDeepInstall (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'install completed successfully')
+ t.is('', stderr, 'no error output')
+ var depPath = path.join(pkg, 'node_modules', 'npm-test-peer-deps')
+ common.npm(conf.concat(['install', 'underscore']), {cwd: depPath}, thenRunOutdated)
+ }
+
+ function thenRunOutdated (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'deep install completed successfully')
+ t.is('', stderr, 'no error output')
+ common.npm(conf.concat(['outdated', '--depth', 9999]), {cwd: pkg}, thenValidateOutput)
+ }
+
+ function thenValidateOutput (err, code, stdout, stderr) {
+ if (err) throw err
+ t.ifError(err)
+ t.is(code, 1, 'npm outdated exited with code 1')
+ t.match(
+ stdout,
+ /underscore.*1\.3\.1.*1\.3\.1.*1\.5\.1.*whatever\n/g,
+ 'child package listed')
+ t.match(
+ stdout,
+ /underscore.*1\.3\.1.*1\.3\.1.*1\.5\.1.*whatever > npm-test-peer-deps/g,
+ 'child package listed')
+ server.close()
+ t.end()
+ }
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.end()
+})