| var test = require('tap').test |
| |
| var server = require('./lib/server.js') |
| var common = require('./lib/common.js') |
| var client = common.freshClient() |
| |
| var cache = require('./fixtures/underscore/cache.json') |
| |
| function nop () {} |
| |
| var REV = '/-rev/72-47f2986bfd8e8b55068b204588bbf484' |
| var URI = 'http://localhost:1337/underscore' |
| var TOKEN = 'of-glad-tidings' |
| var VERSION = '1.3.2' |
| var AUTH = { |
| token: TOKEN |
| } |
| var PARAMS = { |
| version: VERSION, |
| auth: AUTH |
| } |
| |
| test('unpublish call contract', function (t) { |
| t.throws(function () { |
| client.unpublish(undefined, AUTH, nop) |
| }, 'requires a URI') |
| |
| t.throws(function () { |
| client.unpublish([], AUTH, nop) |
| }, 'requires URI to be a string') |
| |
| t.throws(function () { |
| client.unpublish(URI, undefined, nop) |
| }, 'requires params object') |
| |
| t.throws(function () { |
| client.unpublish(URI, '', nop) |
| }, 'params must be object') |
| |
| t.throws(function () { |
| client.unpublish(URI, AUTH, undefined) |
| }, 'requires callback') |
| |
| t.throws(function () { |
| client.unpublish(URI, AUTH, 'callback') |
| }, 'callback must be function') |
| |
| t.throws( |
| function () { |
| var params = { |
| version: VERSION |
| } |
| client.unpublish(URI, params, nop) |
| }, |
| { name: 'AssertionError', message: 'must pass auth to unpublish' }, |
| 'must pass auth to unpublish' |
| ) |
| |
| t.end() |
| }) |
| |
| test('unpublish a package', function (t) { |
| server.expect('GET', '/underscore?write=true', function (req, res) { |
| t.equal(req.method, 'GET') |
| |
| res.json(cache) |
| }) |
| |
| server.expect('PUT', '/underscore' + REV, function (req, res) { |
| t.equal(req.method, 'PUT') |
| |
| var b = '' |
| req.setEncoding('utf-8') |
| req.on('data', function (d) { |
| b += d |
| }) |
| |
| req.on('end', function () { |
| var updated = JSON.parse(b) |
| t.notOk(updated.versions[VERSION]) |
| }) |
| |
| res.json(cache) |
| }) |
| |
| server.expect('GET', '/underscore', function (req, res) { |
| t.equal(req.method, 'GET') |
| |
| res.json(cache) |
| }) |
| |
| server.expect('DELETE', '/underscore/-/underscore-1.3.2.tgz' + REV, function (req, res) { |
| t.equal(req.method, 'DELETE') |
| |
| res.json({ unpublished: true }) |
| }) |
| |
| client.unpublish(URI, PARAMS, function (error) { |
| t.ifError(error, 'no errors') |
| |
| server.close() |
| t.end() |
| }) |
| }) |