mirror of https://github.com/lukechilds/node.git
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.
77 lines
1.7 KiB
77 lines
1.7 KiB
var common = require("../common-tap.js")
|
|
var test = require("tap").test
|
|
var pkg = './ignore-shrinkwrap'
|
|
|
|
var mr = require("npm-registry-mock")
|
|
|
|
var child
|
|
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, res) {
|
|
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 (m) {
|
|
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, res) {
|
|
switch (req.url) {
|
|
case "/shrinkwrap.js":
|
|
t.pass("shrinkwrap used")
|
|
break
|
|
case "/package.js":
|
|
t.fail()
|
|
}
|
|
})
|
|
var child = createChild(false)
|
|
child.on("close", function (m) {
|
|
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
|
|
}
|
|
})
|
|
|
|
}
|
|
|