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.

76 lines
1.7 KiB

var common = require("../common-tap.js")
var test = require("tap").test
var pkg = require("path").join(__dirname,"ignore-shrinkwrap")
var mr = require("npm-registry-mock")
var spawn = require("child_process").spawn
var npm = require.resolve("../../bin/npm-cli.js")
var node = process.execPath
var customMocks = {
"get": {
"/package.js": [200, {"ente" : true}],
"/shrinkwrap.js": [200, {"ente" : true}]
}
}
test("ignore-shrinkwrap: using the option", function (t) {
mr({port: common.port, mocks: customMocks}, function (s) {
s._server.on("request", function (req) {
switch (req.url) {
case "/shrinkwrap.js":
t.fail()
break
case "/package.js":
t.pass("package.json used")
}
})
var child = createChild(true)
child.on("close", function () {
s.close()
t.end()
})
})
})
test("ignore-shrinkwrap: NOT using the option", function (t) {
mr({port: common.port, mocks: customMocks}, function (s) {
s._server.on("request", function (req) {
switch (req.url) {
case "/shrinkwrap.js":
t.pass("shrinkwrap used")
break
case "/package.js":
t.fail()
}
})
var child = createChild(false)
child.on("close", function () {
s.close()
t.end()
})
})
})
function createChild (ignoreShrinkwrap) {
var args
if (ignoreShrinkwrap) {
args = [npm, "install", "--no-shrinkwrap"]
} else {
args = [npm, "install"]
}
return spawn(node, args, {
cwd: pkg,
env: {
"npm_config_registry": common.registry,
"npm_config_cache_lock_stale": 1000,
"npm_config_cache_lock_wait": 1000,
HOME: process.env.HOME,
Path: process.env.PATH,
PATH: process.env.PATH
}
})
}