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.

53 lines
1.4 KiB

if (process.platform === "win32") {
console.error("skipping test, because windows and shebangs")
return
}
var common = require("../common-tap.js")
var mr = require("npm-registry-mock")
var test = require("tap").test
var npm = require.resolve("../../bin/npm-cli.js")
var node = process.execPath
var rimraf = require("rimraf")
var spawn = require("child_process").spawn
var fs = require("fs")
test("setup", function (t) {
var s = "#!/usr/bin/env bash\n" +
"echo \"$@\" > " + JSON.stringify(__dirname) + "/_output\n"
fs.writeFileSync(__dirname + "/_script.sh", s, "ascii")
fs.chmodSync(__dirname + "/_script.sh", "0755")
t.pass("made script")
t.end()
})
test("npm repo underscore", function (t) {
mr(common.port, function (s) {
var c = spawn(node, [
npm, "repo", "underscore",
"--registry=" + common.registry,
"--loglevel=silent",
"--browser=" + __dirname + "/_script.sh",
])
c.stdout.on("data", function(d) {
t.fail("Should not get data on stdout: " + d)
})
c.stderr.pipe(process.stderr)
c.on("close", function(code) {
t.equal(code, 0, "exit ok")
var res = fs.readFileSync(__dirname + "/_output", "ascii")
s.close()
t.equal(res, "https://github.com/jashkenas/underscore\n")
t.end()
})
})
})
test("cleanup", function (t) {
fs.unlinkSync(__dirname + "/_script.sh")
fs.unlinkSync(__dirname + "/_output")
t.pass("cleaned up")
t.end()
})