diff options
author | Rebecca Turner <me@re-becca.org> | 2016-01-21 22:18:51 +0300 |
---|---|---|
committer | Kat Marchán <kzm@sykosomatic.org> | 2017-03-10 03:07:32 +0300 |
commit | 84be534aedb78c65cd8012427fc04871ceeccf90 (patch) | |
tree | 8ce7b9894092c98cd60ed43afb44097114690428 /test | |
parent | 195a61bcc5b88fd4446f1729a327539393679592 (diff) |
ls: stop flattening output, show the actual tree
PR-URL: https://github.com/npm/npm/pull/15888
Credit: @iarna
Reviewed-By: @zkat
Diffstat (limited to 'test')
-rw-r--r-- | test/tap/extraneous-dep-cycle-ls-ok.js | 3 | ||||
-rw-r--r-- | test/tap/git-races.js | 15 | ||||
-rw-r--r-- | test/tap/peer-deps-toplevel.js | 121 |
3 files changed, 82 insertions, 57 deletions
diff --git a/test/tap/extraneous-dep-cycle-ls-ok.js b/test/tap/extraneous-dep-cycle-ls-ok.js index 767cb6d7f..d483b3e22 100644 --- a/test/tap/extraneous-dep-cycle-ls-ok.js +++ b/test/tap/extraneous-dep-cycle-ls-ok.js @@ -54,7 +54,8 @@ test('setup', function (t) { var expected = pkg + '\n' + '└─┬ moduleA@1.0.0\n' + - ' └── moduleB@1.0.0\n\n' + ' └─┬ moduleB@1.0.0\n' + + ' └── moduleA@1.0.0 deduped\n\n' test('extraneous-dep-cycle', function (t) { common.npm(['ls', '--unicode=true'], {cwd: pkg}, function (er, code, stdout, stderr) { diff --git a/test/tap/git-races.js b/test/tap/git-races.js index f275455cd..c6c27d504 100644 --- a/test/tap/git-races.js +++ b/test/tap/git-races.js @@ -162,7 +162,8 @@ function setup (cb) { var oneTree = [ 'npm-git-test@1.0.0', [ ['dummy-npm-bar@4.0.0', [ - ['dummy-npm-foo@3.0.0', []] + ['dummy-npm-foo@3.0.0', []], + ['dummy-npm-buzz@3.0.0', []] ]], ['dummy-npm-buzz@3.0.0', []], ['dummy-npm-foo@4.0.0', [ @@ -199,17 +200,19 @@ test('setup', function (t) { }) test('correct versions are installed for git dependency', function (t) { - t.plan(3) t.comment('test for https://github.com/npm/npm/issues/7202') npm.commands.install([], function (er) { t.ifError(er, 'installed OK') npm.commands.ls([], true, function (er, result) { t.ifError(er, 'ls OK') var simplified = toSimple(result) - t.ok( - deepEqual(simplified, oneTree) || deepEqual(simplified, otherTree), - 'install tree is correct' - ) + if (deepEqual(simplified, oneTree) || deepEqual(simplified, otherTree)) { + t.pass('install tree is correct') + } else { + t.isDeeply(simplified, oneTree, 'oneTree matches') + t.isDeeply(simplified, otherTree, 'otherTree matches') + } + t.done() }) }) }) diff --git a/test/tap/peer-deps-toplevel.js b/test/tap/peer-deps-toplevel.js index 1c9586730..a4384a7a5 100644 --- a/test/tap/peer-deps-toplevel.js +++ b/test/tap/peer-deps-toplevel.js @@ -1,16 +1,29 @@ -var fs = require('graceful-fs') +'use strict' var path = require('path') - -var mkdirp = require('mkdirp') -var mr = require('npm-registry-mock') -var osenv = require('osenv') -var rimraf = require('rimraf') var test = require('tap').test - +var mr = require('npm-registry-mock') +var Tacks = require('tacks') +var File = Tacks.File +var Dir = Tacks.Dir +var extend = Object.assign || require('util')._extend var common = require('../common-tap.js') -var npm = npm = require('../../') -var pkg = path.resolve(__dirname, 'peer-deps-toplevel') +var basedir = path.join(__dirname, path.basename(__filename, '.js')) +var testdir = path.join(basedir, 'testdir') +var cachedir = path.join(basedir, 'cache') +var globaldir = path.join(basedir, 'global') +var tmpdir = path.join(basedir, 'tmp') + +var conf = { + cwd: testdir, + env: extend(extend({}, process.env), { + npm_config_cache: cachedir, + npm_config_tmp: tmpdir, + npm_config_prefix: globaldir, + npm_config_registry: common.registry, + npm_config_loglevel: 'warn' + }) +} var expected = { name: 'npm-test-peer-deps-toplevel', @@ -59,57 +72,65 @@ var expected = { } } -var json = { - author: 'Domenic Denicola', - name: 'npm-test-peer-deps-toplevel', - version: '0.0.0', - dependencies: { - 'npm-test-peer-deps': '*' - }, - peerDependencies: { - mkdirp: '*' - } +var server +var fixture = new Tacks(Dir({ + cache: Dir(), + global: Dir(), + tmp: Dir(), + testdir: Dir({ + 'package.json': File({ + name: 'npm-test-peer-deps-toplevel', + version: '0.0.0', + dependencies: { + 'npm-test-peer-deps': '*' + }, + peerDependencies: { + mkdirp: '*' + } + }) + }) +})) + +function setup () { + cleanup() + fixture.create(basedir) } -test('installs the peer dependency directory structure', function (t) { - mr({ port: common.port }, function (er, s) { - setup(function (err) { - t.ifError(err, 'setup ran successfully') +function cleanup () { + fixture.remove(basedir) +} - npm.install('.', function (err) { - t.ifError(err, 'packages were installed') +test('setup', function (t) { + setup() + mr({port: common.port, throwOnUnmatched: true}, function (err, s) { + if (err) throw err + server = s + t.done() + }) +}) - npm.commands.ls([], true, function (err, _, results) { - t.ifError(err, 'listed tree without problems') +test('installs the peer dependency directory structure', function (t) { + common.npm(['install'], conf, function (err, code, stdout, stderr) { + if (err) throw err + t.is(code, 0, 'install ran ok even w/ missing peeer deps') + t.comment(stdout.trim()) + t.comment(stderr.trim()) - t.deepEqual(results, expected, 'got expected output from ls') - s.close() - t.end() - }) - }) + common.npm(['ls', '--json'], conf, function (err, code, stdout, stderr) { + if (err) throw err + t.is(code, 1, 'missing peer deps _are_ an ls error though') + t.comment(stderr.trim()) + var results = JSON.parse(stdout) + + t.deepEqual(results, expected, 'got expected output from ls') + t.done() }) }) }) test('cleanup', function (t) { + server.close() cleanup() - t.end() + t.done() }) -function setup (cb) { - cleanup() - mkdirp.sync(pkg) - fs.writeFileSync( - path.join(pkg, 'package.json'), - JSON.stringify(json, null, 2) - ) - process.chdir(pkg) - - var opts = { cache: path.resolve(pkg, 'cache'), registry: common.registry } - npm.load(opts, cb) -} - -function cleanup () { - process.chdir(osenv.tmpdir()) - rimraf.sync(pkg) -} |