| var test = require('tap').test |
| |
| var server = require('./lib/server.js') |
| var common = require('./lib/common.js') |
| var client = common.freshClient() |
| |
| function nop () {} |
| |
| var BASE_URL = 'http://localhost:1337/' |
| var URI = '/-/package/underscore/dist-tags/test' |
| var TOKEN = 'foo' |
| var AUTH = { |
| token: TOKEN |
| } |
| var PACKAGE = 'underscore' |
| var DIST_TAG = 'test' |
| var PARAMS = { |
| 'package': PACKAGE, |
| distTag: DIST_TAG, |
| auth: AUTH |
| } |
| |
| test('distTags.rm call contract', function (t) { |
| t.throws(function () { |
| client.distTags.rm(undefined, AUTH, nop) |
| }, 'requires a URI') |
| |
| t.throws(function () { |
| client.distTags.rm([], PARAMS, nop) |
| }, 'requires URI to be a string') |
| |
| t.throws(function () { |
| client.distTags.rm(BASE_URL, undefined, nop) |
| }, 'requires params object') |
| |
| t.throws(function () { |
| client.distTags.rm(BASE_URL, '', nop) |
| }, 'params must be object') |
| |
| t.throws(function () { |
| client.distTags.rm(BASE_URL, PARAMS, undefined) |
| }, 'requires callback') |
| |
| t.throws(function () { |
| client.distTags.rm(BASE_URL, PARAMS, 'callback') |
| }, 'callback must be function') |
| |
| t.throws( |
| function () { |
| var params = { |
| distTag: DIST_TAG, |
| auth: AUTH |
| } |
| client.distTags.rm(BASE_URL, params, nop) |
| }, |
| { |
| name: 'AssertionError', |
| message: 'must pass package name to distTags.rm' |
| }, |
| 'distTags.rm must include package name' |
| ) |
| |
| t.throws( |
| function () { |
| var params = { |
| 'package': PACKAGE, |
| auth: AUTH |
| } |
| client.distTags.rm(BASE_URL, params, nop) |
| }, |
| { |
| name: 'AssertionError', |
| message: 'must pass package distTag name to distTags.rm' |
| }, |
| 'distTags.rm must include dist-tag' |
| ) |
| |
| t.throws( |
| function () { |
| var params = { |
| 'package': PACKAGE, |
| distTag: DIST_TAG |
| } |
| client.distTags.rm(BASE_URL, params, nop) |
| }, |
| { name: 'AssertionError', message: 'must pass auth to distTags.rm' }, |
| 'distTags.rm must include auth' |
| ) |
| |
| t.end() |
| }) |
| |
| test('remove a dist-tag from a package', function (t) { |
| server.expect('DELETE', URI, function (req, res) { |
| t.equal(req.method, 'DELETE') |
| |
| var b = '' |
| req.setEncoding('utf8') |
| req.on('data', function (d) { |
| b += d |
| }) |
| |
| req.on('end', function () { |
| t.notOk(b, 'got no message body') |
| |
| res.statusCode = 200 |
| res.json({}) |
| }) |
| }) |
| |
| client.distTags.rm(BASE_URL, PARAMS, function (error, data) { |
| t.ifError(error, 'no errors') |
| t.notOk(data.test, 'dist-tag removed') |
| |
| server.close() |
| t.end() |
| }) |
| }) |