]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/common-tap.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / common-tap.js
1 // cheesy hackaround for test deps (read: nock) that rely on setImmediate
2 if (!global.setImmediate || !require('timers').setImmediate) {
3   require('timers').setImmediate = global.setImmediate = function () {
4     var args = [arguments[0], 0].concat([].slice.call(arguments, 1))
5     setTimeout.apply(this, args)
6   }
7 }
8 var spawn = require('child_process').spawn
9 var path = require('path')
10
11 var port = exports.port = 1337
12 exports.registry = 'http://localhost:' + port
13 process.env.npm_config_loglevel = 'error'
14
15 var npm_config_cache = path.resolve(__dirname, 'npm_cache')
16 process.env.npm_config_cache = exports.npm_config_cache = npm_config_cache
17 process.env.npm_config_userconfig = exports.npm_config_userconfig = path.join(__dirname, 'fixtures', 'config', 'userconfig')
18 process.env.npm_config_globalconfig = exports.npm_config_globalconfig = path.join(__dirname, 'fixtures', 'config', 'globalconfig')
19 process.env.random_env_var = 'foo'
20 // suppress warnings about using a prerelease version of node
21 process.env.npm_config_node_version = process.version.replace(/-.*$/, '')
22
23 var bin = exports.bin = require.resolve('../bin/npm-cli.js')
24 var chain = require('slide').chain
25 var once = require('once')
26
27 exports.npm = function npm (cmd, opts, cb) {
28   cb = once(cb)
29   cmd = [bin].concat(cmd)
30   opts = opts || {}
31
32   opts.env = opts.env || process.env
33   if (!opts.env.npm_config_cache) {
34     opts.env.npm_config_cache = npm_config_cache
35   }
36
37   var stdout = ''
38   var stderr = ''
39   var node = process.execPath
40   var child = spawn(node, cmd, opts)
41
42   if (child.stderr) {
43     child.stderr.on('data', function (chunk) {
44       stderr += chunk
45     })
46   }
47
48   if (child.stdout) {
49     child.stdout.on('data', function (chunk) {
50       stdout += chunk
51     })
52   }
53
54   child.on('error', cb)
55
56   child.on('close', function (code) {
57     cb(null, code, stdout, stderr)
58   })
59   return child
60 }
61
62 exports.makeGitRepo = function makeGitRepo (params, cb) {
63   // git must be called after npm.load because it uses config
64   var git = require('../lib/utils/git.js')
65
66   var root = params.path || process.cwd()
67   var user = params.user || 'PhantomFaker'
68   var email = params.email || 'nope@not.real'
69   var added = params.added || ['package.json']
70   var message = params.message || 'stub repo'
71
72   var opts = { cwd: root, env: { PATH: process.env.PATH }}
73   var commands = [
74     git.chainableExec(['init'], opts),
75     git.chainableExec(['config', 'user.name', user], opts),
76     git.chainableExec(['config', 'user.email', email], opts),
77     git.chainableExec(['add'].concat(added), opts),
78     git.chainableExec(['commit', '-m', message], opts)
79   ]
80
81   if (Array.isArray(params.commands)) {
82     commands = commands.concat(params.commands)
83   }
84
85   chain(commands, cb)
86 }
87
88 exports.rmFromInShrinkwrap = function rmFromInShrinkwrap (obj) {
89   for (var i in obj) {
90     if (i === "from")
91       delete obj[i]
92     else if (i === "dependencies")
93       for (var j in obj[i])
94         exports.rmFromInShrinkwrap(obj[i][j])
95   }
96   return obj
97 }