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.
 
 
 
 
 
 

56 lines
1.2 KiB

var test = require("tap").test
var rimraf = require("rimraf")
var common = require("../common-tap.js")
var path = require("path")
var fs = require("fs")
var pkg = path.resolve(__dirname, "optional-metadep-rollback-collision")
var nm = path.resolve(pkg, "node_modules")
var cache = path.resolve(pkg, "cache")
var pidfile = path.resolve(pkg, "child.pid")
test("setup", function (t) {
cleanup()
t.end()
})
test("go go test racer", function (t) {
common.npm(["install", "--prefix=" + pkg, "--fetch-retries=0", "--cache=" + cache], {
cwd: pkg,
env: {
PATH: process.env.PATH,
Path: process.env.Path,
"npm_config_loglevel": "silent"
},
stdio: [ 0, "pipe", 2 ]
}, function (er, code, sout) {
if (er) throw er
t.notOk(code, "npm install exited with code 0")
t.equal(sout, "ok\nok\n")
t.notOk(/not ok/.test(sout), "should not contain the string 'not ok'")
t.end()
})
})
test("verify results", function (t) {
t.throws(function () {
fs.statSync(nm)
})
t.end()
})
test("cleanup", function (t) {
cleanup()
t.end()
})
function cleanup () {
try {
var pid = +fs.readFileSync(pidfile)
process.kill(pid, "SIGKILL")
} catch (er) {}
rimraf.sync(cache)
rimraf.sync(nm)
rimraf.sync(pidfile)
}