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.

81 lines
1.7 KiB

var test = require("tap").test
var npm = require("../../")
var pkg = './ignore-shrinkwrap'
var http = require("http")
var server, child
var spawn = require("child_process").spawn
var npm = require.resolve("../../bin/npm-cli.js")
var node = process.execPath
test("ignore-shrinkwrap: using the option", function(t) {
t.plan(1)
server = http.createServer(function (req, res) {
res.setHeader("content-type", "application/javascript")
switch (req.url) {
case "/shrinkwrap.js":
t.fail()
break
case "/package.js":
t.pass("package.json used")
}
t.end()
this.close()
child.kill()
res.statusCode = 500
res.end('{"error":"Rocko Artischocko - oh oh oh oh!"}')
})
server.listen(1337, function() {
child = createChild(true)
})
})
test("ignore-shrinkwrap: NOT using the option", function(t) {
t.plan(1)
server = http.createServer(function (req, res) {
res.setHeader("content-type", "application/javascript")
switch (req.url) {
case "/shrinkwrap.js":
t.pass("shrinkwrap used")
break
case "/package.js":
t.fail()
}
t.end()
this.close()
child.kill()
res.statusCode = 500
res.end('{"error":"Rocko Artischocko - oh oh oh oh!"}')
})
server.listen(1337, function() {
child = createChild(false)
})
})
function createChild (ignoreShrinkwrap) {
var args
if (ignoreShrinkwrap) {
args = [npm, "install", "--no-shrinkwrap"]
} else {
args = [npm, "install"]
}
console.log(args)
return spawn(node, args, {
cwd: pkg,
env: {
npm_config_cache_lock_stale: 1000,
npm_config_cache_lock_wait: 1000,
HOME: process.env.HOME,
Path: process.env.PATH,
PATH: process.env.PATH
}
})
}