summaryrefslogtreecommitdiff
path: root/deps/npm/test/common-tap.js
diff options
context:
space:
mode:
authorForrest L Norvell <forrest@npmjs.com>2015-04-17 01:12:21 -0700
committerChris Dickinson <christopher.s.dickinson@gmail.com>2015-04-17 13:26:30 -0700
commit4870213f9e30e21dcbef19282d04cc40e04035cb (patch)
treefbf8bd696c4bc40b5c5b81a4bff567b30e864f30 /deps/npm/test/common-tap.js
parent49bb7ded2c78ea6b714b5e3640584ee37a1f6668 (diff)
downloadandroid-node-v8-4870213f9e30e21dcbef19282d04cc40e04035cb.tar.gz
android-node-v8-4870213f9e30e21dcbef19282d04cc40e04035cb.tar.bz2
android-node-v8-4870213f9e30e21dcbef19282d04cc40e04035cb.zip
deps: upgrade npm to 2.8.3
Diffstat (limited to 'deps/npm/test/common-tap.js')
-rw-r--r--deps/npm/test/common-tap.js83
1 files changed, 61 insertions, 22 deletions
diff --git a/deps/npm/test/common-tap.js b/deps/npm/test/common-tap.js
index b33d3cb165..3537df6876 100644
--- a/deps/npm/test/common-tap.js
+++ b/deps/npm/test/common-tap.js
@@ -1,18 +1,27 @@
-var spawn = require("child_process").spawn
-var path = require("path")
+// cheesy hackaround for test deps (read: nock) that rely on setImmediate
+if (!global.setImmediate || !require('timers').setImmediate) {
+ require('timers').setImmediate = global.setImmediate = function () {
+ var args = [arguments[0], 0].concat([].slice.call(arguments, 1))
+ setTimeout.apply(this, args)
+ }
+}
+
+var spawn = require('child_process').spawn
+var path = require('path')
var port = exports.port = 1337
-exports.registry = "http://localhost:" + port
-process.env.npm_config_loglevel = "error"
+exports.registry = 'http://localhost:' + port
+process.env.npm_config_loglevel = 'error'
-var npm_config_cache = path.resolve(__dirname, "npm_cache")
+var npm_config_cache = path.resolve(__dirname, 'npm_cache')
process.env.npm_config_cache = exports.npm_config_cache = npm_config_cache
-process.env.npm_config_userconfig = exports.npm_config_userconfig = path.join(__dirname, "fixtures", "config", "userconfig")
-process.env.npm_config_globalconfig = exports.npm_config_globalconfig = path.join(__dirname, "fixtures", "config", "globalconfig")
-process.env.random_env_var = "foo"
+process.env.npm_config_userconfig = exports.npm_config_userconfig = path.join(__dirname, 'fixtures', 'config', 'userconfig')
+process.env.npm_config_globalconfig = exports.npm_config_globalconfig = path.join(__dirname, 'fixtures', 'config', 'globalconfig')
+process.env.random_env_var = 'foo'
-var bin = exports.bin = require.resolve("../bin/npm-cli.js")
-var once = require("once")
+var bin = exports.bin = require.resolve('../bin/npm-cli.js')
+var chain = require('slide').chain
+var once = require('once')
exports.npm = function (cmd, opts, cb) {
cb = once(cb)
@@ -24,23 +33,53 @@ exports.npm = function (cmd, opts, cb) {
opts.env.npm_config_cache = npm_config_cache
}
- var stdout = ""
- , stderr = ""
- , node = process.execPath
- , child = spawn(node, cmd, opts)
+ var stdout = ''
+ var stderr = ''
+ var node = process.execPath
+ var child = spawn(node, cmd, opts)
- if (child.stderr) child.stderr.on("data", function (chunk) {
- stderr += chunk
- })
+ if (child.stderr) {
+ child.stderr.on('data', function (chunk) {
+ stderr += chunk
+ })
+ }
- if (child.stdout) child.stdout.on("data", function (chunk) {
- stdout += chunk
- })
+ if (child.stdout) {
+ child.stdout.on('data', function (chunk) {
+ stdout += chunk
+ })
+ }
- child.on("error", cb)
+ child.on('error', cb)
- child.on("close", function (code) {
+ child.on('close', function (code) {
cb(null, code, stdout, stderr)
})
return child
}
+
+exports.makeGitRepo = function (params, cb) {
+ // git must be called after npm.load because it uses config
+ var git = require('../lib/utils/git.js')
+
+ var root = params.path || process.cwd()
+ var user = params.user || 'PhantomFaker'
+ var email = params.email || 'nope@not.real'
+ var added = params.added || ['package.json']
+ var message = params.message || 'stub repo'
+
+ var opts = { cwd: root, env: { PATH: process.env.PATH }}
+ var commands = [
+ git.chainableExec(['init'], opts),
+ git.chainableExec(['config', 'user.name', user], opts),
+ git.chainableExec(['config', 'user.email', email], opts),
+ git.chainableExec(['add'].concat(added), opts),
+ git.chainableExec(['commit', '-m', message], opts)
+ ]
+
+ if (Array.isArray(params.commands)) {
+ commands = commands.concat(params.commands)
+ }
+
+ chain(commands, cb)
+}