var test = require("tap").test var common = require("../common-tap") var fs = require("fs") var rimraf = require("rimraf") var mr = require("npm-registry-mock") var env = process.env var path = require("path") var pkg = path.resolve(__dirname, "prune") var cache = path.resolve(pkg, "cache") var nodeModules = path.resolve(pkg, "node_modules") var EXEC_OPTS = { cwd: pkg, env: env } EXEC_OPTS.env.npm_config_depth = "Infinity" var server test("reg mock", function (t) { mr({port : common.port}, function (er, s) { server = s t.pass("registry mock started") t.end() }) }) function cleanup () { rimraf.sync(cache) rimraf.sync(nodeModules) } test("setup", function (t) { cleanup() t.pass("setup") t.end() }) test("npm install", function (t) { common.npm([ "install", "--cache", cache, "--registry", common.registry, "--loglevel", "silent", "--production", "false" ], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifErr(err, "install finished successfully") t.notOk(code, "exit ok") t.notOk(stderr, "Should not get data on stderr: " + stderr) t.end() }) }) test("npm install test-package", function (t) { common.npm([ "install", "test-package", "--cache", cache, "--registry", common.registry, "--loglevel", "silent", "--production", "false" ], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifErr(err, "install finished successfully") t.notOk(code, "exit ok") t.notOk(stderr, "Should not get data on stderr: " + stderr) t.end() }) }) test("verify installs", function (t) { var dirs = fs.readdirSync(pkg + "/node_modules").sort() t.same(dirs, [ "test-package", "mkdirp", "underscore" ].sort()) t.end() }) test("npm prune", function (t) { common.npm([ "prune", "--loglevel", "silent", "--production", "false" ], EXEC_OPTS, function (err, code, stdout, stderr) { t.ifErr(err, "prune finished successfully") t.notOk(code, "exit ok") t.notOk(stderr, "Should not get data on stderr: " + stderr) t.end() }) }) test("verify installs", function (t) { var dirs = fs.readdirSync(pkg + "/node_modules").sort() t.same(dirs, [ "mkdirp", "underscore" ]) t.end() }) test("npm prune", function (t) { common.npm([ "prune", "--loglevel", "silent", "--production" ], EXEC_OPTS, function (err, code, stderr) { t.ifErr(err, "prune finished successfully") t.notOk(code, "exit ok") t.equal(stderr, "unbuild mkdirp@0.3.5\n") t.end() }) }) test("verify installs", function (t) { var dirs = fs.readdirSync(pkg + "/node_modules").sort() t.same(dirs, [ "underscore" ]) t.end() }) test("cleanup", function (t) { server.close() cleanup() t.pass("cleaned up") t.end() })