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.

78 lines
2.0 KiB

var common = require("../common-tap.js")
var fs = require("fs")
var path = require("path")
var createServer = require("http").createServer
var test = require("tap").test
var rimraf = require("rimraf")
var opts = { cwd: __dirname }
var FIXTURE_PATH = path.resolve(__dirname, "fixture_npmrc")
test("npm whoami with basic auth", function (t) {
var s = "//registry.lvh.me/:username = wombat\n" +
"//registry.lvh.me/:_password = YmFkIHBhc3N3b3Jk\n" +
"//registry.lvh.me/:email = lindsay@wdu.org.au\n"
fs.writeFileSync(FIXTURE_PATH, s, "ascii")
fs.chmodSync(FIXTURE_PATH, "0444")
common.npm(
[
"whoami",
"--userconfig=" + FIXTURE_PATH,
"--registry=http://registry.lvh.me/"
],
opts,
function (err, code, stdout, stderr) {
t.ifError(err)
t.equal(stderr, "", "got nothing on stderr")
t.equal(code, 0, "exit ok")
t.equal(stdout, "wombat\n", "got username")
rimraf.sync(FIXTURE_PATH)
t.end()
}
)
})
test("npm whoami with bearer auth", {timeout : 2 * 1000}, function (t) {
var s = "//localhost:" + common.port +
"/:_authToken = wombat-developers-union\n"
fs.writeFileSync(FIXTURE_PATH, s, "ascii")
fs.chmodSync(FIXTURE_PATH, "0444")
function verify(req, res) {
t.equal(req.method, "GET")
t.equal(req.url, "/-/whoami")
res.setHeader("content-type", "application/json")
res.writeHeader(200)
res.end(JSON.stringify({username : "wombat"}), "utf8")
}
var server = createServer(verify)
server.listen(common.port, function () {
common.npm(
[
"whoami",
"--userconfig=" + FIXTURE_PATH,
"--registry=http://localhost:" + common.port + "/"
],
opts,
function (err, code, stdout, stderr) {
t.ifError(err)
t.equal(stderr, "", "got nothing on stderr")
t.equal(code, 0, "exit ok")
t.equal(stdout, "wombat\n", "got username")
rimraf.sync(FIXTURE_PATH)
server.close()
t.end()
}
)
})
})