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.
 
 
 
 
 
 

72 lines
2.2 KiB

var common = require("../common-tap")
var test = require("tap").test
var path = require("path")
// ignore-scripts/package.json has scripts that always exit with non-zero error
// codes. The "install" script is omitted so that npm tries to run node-gyp,
// which should also fail.
var pkg = path.resolve(__dirname, "ignore-scripts")
test("ignore-scripts: install using the option", function (t) {
createChild(["install", "--ignore-scripts"], function (err, code) {
t.ifError(err, "install with scripts ignored finished successfully")
t.equal(code, 0, "npm install exited with code")
t.end()
})
})
test("ignore-scripts: install NOT using the option", function (t) {
createChild(["install"], function (err, code) {
t.ifError(err, "install with scripts successful")
t.notEqual(code, 0, "npm install exited with code")
t.end()
})
})
var scripts = [
"prepublish", "publish", "postpublish",
"preinstall", "install", "postinstall",
"preuninstall", "uninstall", "postuninstall",
"pretest", "test", "posttest",
"prestop", "stop", "poststop",
"prestart", "start", "poststart",
"prerestart", "restart", "postrestart"
]
scripts.forEach(function (script) {
test("ignore-scripts: run-script "+script+" using the option", function (t) {
createChild(["--ignore-scripts", "run-script", script], function (err, code) {
t.ifError(err, "run-script " + script + " with ignore-scripts successful")
t.equal(code, 0, "npm run-script exited with code")
t.end()
})
})
})
scripts.forEach(function (script) {
test("ignore-scripts: run-script "+script+" NOT using the option", function (t) {
createChild(["run-script", script], function (err, code) {
t.ifError(err, "run-script " + script + " finished successfully")
t.notEqual(code, 0, "npm run-script exited with code")
t.end()
})
})
})
function createChild (args, cb) {
var env = {
HOME: process.env.HOME,
Path: process.env.PATH,
PATH: process.env.PATH,
"npm_config_loglevel": "silent"
}
if (process.platform === "win32")
env.npm_config_cache = "%APPDATA%\\npm-cache"
return common.npm(args, {
cwd: pkg,
stdio: "inherit",
env: env
}, cb)
}