--- /dev/null
+// 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)
+ })
+ })
+ }
+ })
+}