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