mirror of https://github.com/nodejs/node.git
116 lines
2.6 KiB
JavaScript
116 lines
2.6 KiB
JavaScript
var test = require("tap").test
|
|
var fs = require("fs")
|
|
var node = process.execPath
|
|
var npm = require.resolve("../../bin/npm-cli.js")
|
|
var rimraf = require("rimraf")
|
|
var mr = require("npm-registry-mock")
|
|
var common = require("../common-tap.js")
|
|
var spawn = require("child_process").spawn
|
|
var env = process.env
|
|
process.env.npm_config_depth = "Infinity"
|
|
|
|
var pkg = __dirname + "/prune"
|
|
var cache = pkg + "/cache"
|
|
|
|
var server
|
|
|
|
test("reg mock", function (t) {
|
|
mr(common.port, function (s) {
|
|
server = s
|
|
t.pass("registry mock started")
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
|
|
test("npm install", function (t) {
|
|
rimraf.sync(pkg + "/node_modules")
|
|
var c = spawn(node, [
|
|
npm, "install",
|
|
"--cache=" + cache,
|
|
"--registry=" + common.registry,
|
|
"--loglevel=silent",
|
|
"--production=false"
|
|
], { cwd: pkg, env: env })
|
|
c.stderr.on("data", function(d) {
|
|
t.fail("Should not get data on stderr: " + d)
|
|
})
|
|
c.on("close", function(code) {
|
|
t.notOk(code, "exit ok")
|
|
t.end()
|
|
})
|
|
})
|
|
|
|
test("npm install test-package", function (t) {
|
|
var c = spawn(node, [
|
|
npm, "install", "test-package",
|
|
"--cache=" + cache,
|
|
"--registry=" + common.registry,
|
|
"--loglevel=silent",
|
|
"--production=false"
|
|
], { cwd: pkg, env: env })
|
|
c.stderr.on("data", function(d) {
|
|
t.fail("Should not get data on stderr: " + d)
|
|
})
|
|
c.on("close", function(code) {
|
|
t.notOk(code, "exit ok")
|
|
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) {
|
|
var c = spawn(node, [
|
|
npm, "prune",
|
|
"--loglevel=silent",
|
|
"--production=false"
|
|
], { cwd: pkg, env: env })
|
|
c.stderr.on("data", function(d) {
|
|
t.fail("Should not get data on stderr: " + d)
|
|
})
|
|
c.on("close", function(code) {
|
|
t.notOk(code, "exit ok")
|
|
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) {
|
|
var c = spawn(node, [
|
|
npm, "prune",
|
|
"--loglevel=silent",
|
|
"--production"
|
|
], { cwd: pkg, env: env })
|
|
c.stderr.on("data", function(d) {
|
|
t.fail("Should not get data on stderr: " + d)
|
|
})
|
|
c.on("close", function(code) {
|
|
t.notOk(code, "exit ok")
|
|
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()
|
|
rimraf.sync(pkg + "/node_modules")
|
|
rimraf.sync(pkg + "/cache")
|
|
t.pass("cleaned up")
|
|
t.end()
|
|
})
|