diff options
Diffstat (limited to 'deps/npm/test/tap/ls-l-depth-0.js')
-rw-r--r-- | deps/npm/test/tap/ls-l-depth-0.js | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/deps/npm/test/tap/ls-l-depth-0.js b/deps/npm/test/tap/ls-l-depth-0.js new file mode 100644 index 0000000000..c11f4826e4 --- /dev/null +++ b/deps/npm/test/tap/ls-l-depth-0.js @@ -0,0 +1,114 @@ +var cat = require("graceful-fs").writeFileSync +var resolve = require("path").resolve + +var mkdirp = require("mkdirp") +var mr = require("npm-registry-mock") +var rimraf = require("rimraf") +var test = require("tap").test +var tmpdir = require("osenv").tmpdir + +var common = require("../common-tap.js") + +var pkg = resolve(__dirname, "ls-l-depth-0") +var dep = resolve(pkg, "deps", "glock") +var modules = resolve(pkg, "node_modules") + +var expected = + "\n" + + "│ " + pkg + "\n" + + "│ \n" + + "└── glock@1.8.7\n" + + " an inexplicably hostile sample package\n" + + " https://github.com/npm/glo.ck\n" + + " https://glo.ck\n" + + "\n" + +var server + +var EXEC_OPTS = { + cwd : pkg +} + +test("setup", function (t) { + setup() + mr(common.port, function (s) { + server = s + + t.end() + }) +}) + +test("#6311: npm ll --depth=0 duplicates listing", function (t) { + common.npm( + [ + "--loglevel", "silent", + "--registry", common.registry, + "install", dep + ], + EXEC_OPTS, + function (err, code, stdout, stderr) { + t.ifError(err, "npm install ran without error") + t.notOk(code, "npm install exited cleanly") + t.notOk(stderr, "npm install ran silently") + t.equal( + stdout.trim(), + "glock@1.8.7 node_modules/glock\n└── underscore@1.5.1", + "got expected install output" + ) + + common.npm( + [ + "--loglevel", "silent", + "ls", "--long", + "--depth", "0" + ], + EXEC_OPTS, + function (err, code, stdout, stderr) { + t.ifError(err, "npm ll ran without error") + t.notOk(code, "npm ll exited cleanly") + t.notOk(stderr, "npm ll ran silently") + t.equal( + stdout, + expected, + "got expected package name" + ) + + t.end() + } + ) + } + ) +}) + +test("cleanup", function (t) { + cleanup() + server.close() + + t.end() +}) + +var fixture = { + "name" : "glock", + "version" : "1.8.7", + "private" : true, + "description" : "an inexplicably hostile sample package", + "homepage" : "https://glo.ck", + "repository" : "https://github.com/npm/glo.ck", + "dependencies" : { + "underscore" : "1.5.1" + } +} + +function cleanup () { + process.chdir(tmpdir()) + rimraf.sync(pkg) +} + +function setup () { + cleanup() + + mkdirp.sync(modules) + mkdirp.sync(dep) + + cat(resolve(dep, "package.json"), JSON.stringify(fixture)) +} |