summaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/optional-metadep-rollback-collision.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/tap/optional-metadep-rollback-collision.js')
-rw-r--r--deps/npm/test/tap/optional-metadep-rollback-collision.js85
1 files changed, 29 insertions, 56 deletions
diff --git a/deps/npm/test/tap/optional-metadep-rollback-collision.js b/deps/npm/test/tap/optional-metadep-rollback-collision.js
index 862e6e8c72..ce62e005ba 100644
--- a/deps/npm/test/tap/optional-metadep-rollback-collision.js
+++ b/deps/npm/test/tap/optional-metadep-rollback-collision.js
@@ -1,3 +1,4 @@
+'use strict'
var fs = require('graceful-fs')
var path = require('path')
@@ -12,7 +13,9 @@ var pkg = path.resolve(__dirname, 'optional-metadep-rollback-collision')
var deps = path.resolve(pkg, 'deps')
var opdep = path.resolve(pkg, 'node_modules', 'opdep')
var cache = path.resolve(pkg, 'cache')
-var pidfile = path.resolve(pkg, 'child.pid')
+var createServer = require('http').createServer
+var mr = require('npm-registry-mock')
+var serverPort = 27991
var json = {
name: 'optional-metadep-rollback-collision',
@@ -31,7 +34,7 @@ var d1 = {
preinstall: 'sleep 1'
},
dependencies: {
- foo: 'http://localhost:8080/'
+ foo: 'http://localhost:' + serverPort + '/'
}
}
@@ -43,9 +46,9 @@ var d2 = {
postinstall: 'node blart.js'
},
dependencies: {
- 'graceful-fs': '^3.0.2',
- mkdirp: '^0.5.0',
- rimraf: '^2.2.8'
+ 'request': '^0.9.0',
+ mkdirp: '^0.3.5',
+ wordwrap: '^0.0.2'
}
}
@@ -54,52 +57,12 @@ var opdep_json = {
version: '1.0.0',
description: 'To explode, of course!',
main: 'index.js',
- scripts: {
- preinstall: 'node bad-server.js'
- },
dependencies: {
d1: 'file:../d1',
d2: 'file:../d2'
}
}
-var badServer = function () { /*
-var createServer = require('http').createServer
-var spawn = require('child_process').spawn
-var fs = require('fs')
-var path = require('path')
-var pidfile = path.resolve(__dirname, '..', '..', 'child.pid')
-
-if (process.argv[2]) {
- console.log('ok')
- createServer(function (req, res) {
- setTimeout(function () {
- res.writeHead(404)
- res.end()
- }, 1000)
- this.close()
- }).listen(8080)
-} else {
- var child = spawn(
- process.execPath,
- [__filename, 'whatever'],
- {
- stdio: [0, 1, 2],
- detached: true
- }
- )
- child.unref()
-
- // kill any prior children, if existing.
- try {
- var pid = +fs.readFileSync(pidfile)
- process.kill(pid, 'SIGKILL')
- } catch (er) {}
-
- fs.writeFileSync(pidfile, child.pid + '\n')
-}
-*/ }.toString().split('\n').slice(1, -1).join('\n')
-
var blart = function () { /*
var rando = require('crypto').randomBytes
var resolve = require('path').resolve
@@ -153,8 +116,17 @@ mkdirp(BASEDIR, function go () {
}, 3 * 1000)
})
*/ }.toString().split('\n').slice(1, -1).join('\n')
+
+let badServer
+let mockServer
test('setup', function (t) {
cleanup()
+ badServer = createServer(function (req, res) {
+ setTimeout(function () {
+ res.writeHead(404)
+ res.end()
+ }, 1000)
+ }).listen(serverPort)
mkdirp.sync(pkg)
fs.writeFileSync(
@@ -180,17 +152,19 @@ test('setup', function (t) {
path.join(deps, 'opdep', 'package.json'),
JSON.stringify(opdep_json, null, 2)
)
- fs.writeFileSync(path.join(deps, 'opdep', 'bad-server.js'), badServer)
-
- t.end()
+ mr({ port: common.port }, function (er, server) {
+ mockServer = server
+ t.end()
+ })
})
-
test('go go test racer', function (t) {
common.npm(
[
'--prefix', pkg,
'--fetch-retries', '0',
- '--loglevel', 'silent',
+ '--loglevel', 'error',
+ '--no-progress',
+ '--registry', common.registry,
'--parseable',
'--cache', cache,
'install'
@@ -200,12 +174,13 @@ test('go go test racer', function (t) {
env: {
PATH: process.env.PATH,
Path: process.env.Path
- }
+ },
+ stdio: [ 0, 'pipe', 2 ]
},
function (er, code, stdout, stderr) {
t.ifError(er, 'install ran to completion without error')
t.is(code, 0, 'npm install exited with code 0')
- t.comment(stdout.trim())
+ t.comment(stderr.trim())
// stdout should be empty, because we only have one, optional, dep and
// if it fails we shouldn't try installing anything
t.equal(stdout, '')
@@ -223,16 +198,14 @@ test('verify results', function (t) {
})
test('cleanup', function (t) {
+ mockServer.close()
+ badServer.close()
cleanup()
t.end()
})
function cleanup () {
process.chdir(osenv.tmpdir())
- try {
- var pid = +fs.readFileSync(pidfile)
- process.kill(pid, 'SIGKILL')
- } catch (er) {}
rimraf.sync(pkg)
}