You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
2.7 KiB

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()
})