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) }