var common = require("../common-tap") , test = require("tap").test , path = require("path") , rimraf = require("rimraf") , osenv = require("osenv") , mkdirp = require("mkdirp") , pkg = path.resolve(__dirname, "ls-depth-unmet") , mr = require("npm-registry-mock") , opts = {cwd: pkg} , cache = path.resolve(pkg, "cache") , tmp = path.resolve(pkg, "tmp") , nodeModules = path.resolve(pkg, "node_modules") function cleanup () { process.chdir(osenv.tmpdir()) rimraf.sync(cache) rimraf.sync(tmp) rimraf.sync(nodeModules) } test("setup", function (t) { cleanup() mkdirp.sync(cache) mkdirp.sync(tmp) mr({port : common.port}, function (er, s) { var cmd = ["install", "underscore@1.3.1", "mkdirp", "test-package-with-one-dep", "--registry=" + common.registry] common.npm(cmd, opts, function (er, c) { if (er) throw er t.equal(c, 0) s.close() t.end() }) }) }) test("npm ls --depth=0", function (t) { common.npm(["ls", "--depth=0"], opts, function (er, c, out) { if (er) throw er t.equal(c, 1) t.has(out, /UNMET DEPENDENCY optimist@0\.6\.0/ , "output contains optimist@0.6.0 and labeled as unmet dependency") t.has(out, /mkdirp@0\.3\.5 extraneous/ , "output contains mkdirp@0.3.5 and labeled as extraneous") t.has(out, /underscore@1\.3\.1 invalid/ , "output contains underscore@1.3.1 and labeled as invalid") t.has(out, /test-package-with-one-dep@0\.0\.0\n/ , "output contains test-package-with-one-dep@0.0.0 and has no labels") t.doesNotHave(out, /test-package@0\.0\.0/ , "output does not contain test-package@0.0.0 which is at depth=1") t.end() }) }) test("npm ls --depth=1", function (t) { common.npm(["ls", "--depth=1"], opts, function (er, c, out) { if (er) throw er t.equal(c, 1) t.has(out, /UNMET DEPENDENCY optimist@0\.6\.0/ , "output contains optimist@0.6.0 and labeled as unmet dependency") t.has(out, /mkdirp@0\.3\.5 extraneous/ , "output contains mkdirp@0.3.5 and labeled as extraneous") t.has(out, /underscore@1\.3\.1 invalid/ , "output contains underscore@1.3.1 and labeled as invalid") t.has(out, /test-package-with-one-dep@0\.0\.0\n/ , "output contains test-package-with-one-dep@0.0.0 and has no labels") t.has(out, /test-package@0\.0\.0/ , "output contains test-package@0.0.0 which is at depth=1") t.end() }) }) test("npm ls --depth=Infinity", function (t) { // travis has a preconfigured depth=0, in general we can not depend // on the default value in all environments, so explictly set it here common.npm(["ls", "--depth=Infinity"], opts, function (er, c, out) { if (er) throw er t.equal(c, 1) t.has(out, /UNMET DEPENDENCY optimist@0\.6\.0/ , "output contains optimist@0.6.0 and labeled as unmet dependency") t.has(out, /mkdirp@0\.3\.5 extraneous/ , "output contains mkdirp@0.3.5 and labeled as extraneous") t.has(out, /underscore@1\.3\.1 invalid/ , "output contains underscore@1.3.1 and labeled as invalid") t.has(out, /test-package-with-one-dep@0\.0\.0\n/ , "output contains test-package-with-one-dep@0.0.0 and has no labels") t.has(out, /test-package@0\.0\.0/ , "output contains test-package@0.0.0 which is at depth=1") t.end() }) }) test("cleanup", function (t) { cleanup() t.end() })