mirror of https://github.com/lukechilds/node.git
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.
86 lines
2.1 KiB
86 lines
2.1 KiB
// Run all the tests in the `npm-registry-couchapp` suite
|
|
// This verifies that the server-side stuff still works.
|
|
|
|
var common = require("../common-tap")
|
|
var test = require("tap").test
|
|
|
|
var npmExec = require.resolve("../../bin/npm-cli.js")
|
|
var path = require("path")
|
|
var ca = path.resolve(__dirname, "../../node_modules/npm-registry-couchapp")
|
|
|
|
var which = require("which")
|
|
|
|
var v = process.versions.node.split(".").map(function (n) { return parseInt(n, 10) })
|
|
if (v[0] === 0 && v[1] < 10) {
|
|
console.error(
|
|
"WARNING: need a recent Node for npm-registry-couchapp tests to run, have",
|
|
process.versions.node
|
|
)
|
|
}
|
|
else {
|
|
which("couchdb", function (er) {
|
|
if (er) {
|
|
console.error("WARNING: need couch to run test: " + er.message)
|
|
}
|
|
else {
|
|
runTests()
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
function runTests () {
|
|
var env = { TAP: 1 }
|
|
for (var i in process.env) env[i] = process.env[i]
|
|
env.npm = npmExec
|
|
|
|
var opts = {
|
|
cwd: ca,
|
|
stdio: "inherit"
|
|
}
|
|
common.npm(["install"], opts, function (err, code, stdout, stderr) {
|
|
if (err) { throw err }
|
|
if (code) {
|
|
return test("need install to work", function (t) {
|
|
t.fail(
|
|
"install failed with: " + code +
|
|
'\nstdout: ' + stdout +
|
|
'\nstderr: ' + stderr)
|
|
t.end()
|
|
})
|
|
|
|
} else {
|
|
opts = {
|
|
cwd: ca,
|
|
env: env,
|
|
stdio: "inherit"
|
|
}
|
|
common.npm(
|
|
[
|
|
"test", "--", "-Rtap"
|
|
],
|
|
opts,
|
|
function (err, code, stdout, stderr) {
|
|
if (err) { throw err }
|
|
if (code) {
|
|
return test("need test to work", function (t) {
|
|
t.fail(
|
|
"test failed with: " + code +
|
|
'\nstdout: ' + stdout +
|
|
'\nstderr: ' + stderr)
|
|
t.end()
|
|
})
|
|
}
|
|
opts = {
|
|
cwd: ca,
|
|
env: env,
|
|
stdio: "inherit"
|
|
}
|
|
common.npm(["prune", "--production"], opts, function (err, code) {
|
|
if (err) { throw err }
|
|
process.exit(code || 0)
|
|
})
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|