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.

73 lines
1.8 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()
}
})
}
var extend = Object.assign || require('util')._extend
function runTests () {
var env = extend({ TAP: 1 }, process.env)
env.npm = npmExec
var opts = {
cwd: ca,
stdio: 'inherit'
}
common.npm(['install'], opts, function (err, code) {
if (err) { throw err }
if (code) {
return test('need install to work', function (t) {
t.fail('install failed with: ' + code)
t.end()
})
} else {
opts = {
cwd: ca,
env: env,
stdio: 'inherit'
}
common.npm(['test', '--', '-Rtap'], opts, function (err, code) {
if (err) { throw err }
if (code) {
return test('need test to work', function (t) {
t.fail('test failed with: ' + code)
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)
})
})
}
})
}