1 var test = require('tap').test
3 var server = require('./lib/server.js')
4 var common = require('./lib/common.js')
5 var client = common.freshClient()
9 var BASE_URL = 'http://localhost:1337/'
10 var URI = '/-/package/underscore/dist-tags/test'
15 var PACKAGE = 'underscore'
23 test('distTags.rm call contract', function (t) {
24 t.throws(function () {
25 client.distTags.rm(undefined, AUTH, nop)
28 t.throws(function () {
29 client.distTags.rm([], PARAMS, nop)
30 }, 'requires URI to be a string')
32 t.throws(function () {
33 client.distTags.rm(BASE_URL, undefined, nop)
34 }, 'requires params object')
36 t.throws(function () {
37 client.distTags.rm(BASE_URL, '', nop)
38 }, 'params must be object')
40 t.throws(function () {
41 client.distTags.rm(BASE_URL, PARAMS, undefined)
42 }, 'requires callback')
44 t.throws(function () {
45 client.distTags.rm(BASE_URL, PARAMS, 'callback')
46 }, 'callback must be function')
54 client.distTags.rm(BASE_URL, params, nop)
57 name: 'AssertionError',
58 message: 'must pass package name to distTags.rm'
60 'distTags.rm must include package name'
69 client.distTags.rm(BASE_URL, params, nop)
72 name: 'AssertionError',
73 message: 'must pass package distTag name to distTags.rm'
75 'distTags.rm must include dist-tag'
84 client.distTags.rm(BASE_URL, params, nop)
86 { name: 'AssertionError', message: 'must pass auth to distTags.rm' },
87 'distTags.rm must include auth'
93 test('remove a dist-tag from a package', function (t) {
94 server.expect('DELETE', URI, function (req, res) {
95 t.equal(req.method, 'DELETE')
98 req.setEncoding('utf8')
99 req.on('data', function (d) {
103 req.on('end', function () {
104 t.notOk(b, 'got no message body')
111 client.distTags.rm(BASE_URL, PARAMS, function (error, data) {
112 t.ifError(error, 'no errors')
113 t.notOk(data.test, 'dist-tag removed')