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.

56 lines
1.2 KiB

// Run all the tests in the `npm-registry-couchapp` suite
// This verifies that the server-side stuff still works.
var test = require("tap").test
var spawn = require("child_process").spawn
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 hasCouch = false
which("couchdb", function(er, couch) {
if (er) {
return test("need couchdb", function (t) {
t.fail("need couch to run test: " + er.message)
t.end()
})
} else {
runTests()
}
})
function runTests () {
spawn(process.execPath, [
npmExec, "install"
], {
cwd: ca,
stdio: "inherit"
}).on("close", function (code, sig) {
if (code || sig) {
return test("need install to work", function (t) {
t.fail("install failed with: " (code || sig))
t.end()
})
} else {
var env = {}
for (var i in process.env) env[i] = process.env[i]
env.npm = npmExec
spawn(process.execPath, [
npmExec, "test"
], {
cwd: ca,
env: env,
stdio: "inherit"
}).on("close", function (code, sig) {
process.exit(code || sig)
})
}
})
}