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