var test = require('tap').test var server = require('./lib/server.js') var common = require('./lib/common.js') var client = common.freshClient() function nop () {} var URI = 'https://npm.registry:8043/rewrite' var USERNAME = 'sample' var PASSWORD = '%1234@asdf%' var EMAIL = 'i@izs.me' var AUTH = { username: USERNAME, password: PASSWORD, email: EMAIL } var PARAMS = { username: USERNAME, auth: AUTH } var USERS = [ 'benjamincoe', 'seldo', 'ceejbot' ] test('stars call contract', function (t) { t.throws(function () { client.stars(undefined, PARAMS, nop) }, 'requires a URI') t.throws(function () { client.stars([], PARAMS, nop) }, 'requires URI to be a string') t.throws(function () { client.stars(URI, undefined, nop) }, 'requires params object') t.throws(function () { client.stars(URI, '', nop) }, 'params must be object') t.throws(function () { client.stars(URI, PARAMS, undefined) }, 'requires callback') t.throws(function () { client.stars(URI, PARAMS, 'callback') }, 'callback must be function') t.test('no username anywhere', function (t) { var params = {} client.stars(URI, params, function (err) { t.equal( err && err.message, 'must pass either username or auth to stars', 'username must not be empty') t.end() }) }) t.end() }) test('get the stars for a package', function (t) { server.expect('GET', '/-/_view/starredByUser?key=%22sample%22', function (req, res) { t.equal(req.method, 'GET') res.json(USERS) }) client.stars('http://localhost:1337/', PARAMS, function (er, info) { t.ifError(er, 'no errors') t.deepEqual(info, USERS, 'got the list of users') server.close() t.end() }) })