Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRebecca Turner <me@re-becca.org>2016-01-21 22:18:51 +0300
committerKat Marchán <kzm@sykosomatic.org>2017-03-10 03:07:32 +0300
commit84be534aedb78c65cd8012427fc04871ceeccf90 (patch)
tree8ce7b9894092c98cd60ed43afb44097114690428 /test
parent195a61bcc5b88fd4446f1729a327539393679592 (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.js3
-rw-r--r--test/tap/git-races.js15
-rw-r--r--test/tap/peer-deps-toplevel.js121
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)
-}