var test = require('tap').test var server = require('./lib/server.js') var common = require('./lib/common.js') var client = common.freshClient() function nop () {} var TOKEN = 'not-bad-meaning-bad-but-bad-meaning-wombat' var AUTH = { token: TOKEN } var PARAMS = { auth: AUTH } var DEP_USER = 'username' var HOST = 'localhost' test('ping call contract', function (t) { t.throws(function () { client.ping(undefined, AUTH, nop) }, 'requires a URI') t.throws(function () { client.ping([], AUTH, nop) }, 'requires URI to be a string') t.throws(function () { client.ping(common.registry, undefined, nop) }, 'requires params object') t.throws(function () { client.ping(common.registry, '', nop) }, 'params must be object') t.throws(function () { client.ping(common.registry, AUTH, undefined) }, 'requires callback') t.throws(function () { client.ping(common.registry, AUTH, 'callback') }, 'callback must be function') t.throws( function () { var params = {} client.ping(common.registry, params, nop) }, { name: 'AssertionError', message: 'must pass auth to ping' }, 'must pass auth to ping' ) t.end() }) test('ping', function (t) { server.expect('GET', '/-/ping?write=true', function (req, res) { t.equal(req.method, 'GET') res.statusCode = 200 res.json({ ok: true, host: HOST, peer: HOST, username: DEP_USER }) }) client.ping(common.registry, PARAMS, function (error, found) { t.ifError(error, 'no errors') var wanted = { ok: true, host: HOST, peer: HOST, username: DEP_USER } t.same(found, wanted) server.close() t.end() }) })