]> gerrit.simantics Code Review - simantics/district.git/blob - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/npm-registry-client/test/dist-tags-set.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / node_modules / npm-registry-client / test / dist-tags-set.js
1 var test = require('tap').test
2
3 var server = require('./lib/server.js')
4 var common = require('./lib/common.js')
5 var client = common.freshClient()
6
7 function nop () {}
8
9 var BASE_URL = 'http://localhost:1337/'
10 var URI = '/-/package/underscore/dist-tags'
11 var TOKEN = 'foo'
12 var AUTH = {
13   token: TOKEN
14 }
15 var PACKAGE = 'underscore'
16 var DIST_TAGS = {
17   'a': '8.0.8',
18   'b': '3.0.3'
19 }
20 var PARAMS = {
21   'package': PACKAGE,
22   distTags: DIST_TAGS,
23   auth: AUTH
24 }
25
26 test('distTags.set call contract', function (t) {
27   t.throws(function () {
28     client.distTags.set(undefined, AUTH, nop)
29   }, 'requires a URI')
30
31   t.throws(function () {
32     client.distTags.set([], PARAMS, nop)
33   }, 'requires URI to be a string')
34
35   t.throws(function () {
36     client.distTags.set(BASE_URL, undefined, nop)
37   }, 'requires params object')
38
39   t.throws(function () {
40     client.distTags.set(BASE_URL, '', nop)
41   }, 'params must be object')
42
43   t.throws(function () {
44     client.distTags.set(BASE_URL, PARAMS, undefined)
45   }, 'requires callback')
46
47   t.throws(function () {
48     client.distTags.set(BASE_URL, PARAMS, 'callback')
49   }, 'callback must be function')
50
51   t.throws(
52     function () {
53       var params = {
54         distTags: DIST_TAGS,
55         auth: AUTH
56       }
57       client.distTags.set(BASE_URL, params, nop)
58     },
59     {
60       name: 'AssertionError',
61       message: 'must pass package name to distTags.set'
62     },
63     'distTags.set must include package name'
64   )
65
66   t.throws(
67     function () {
68       var params = {
69         'package': PACKAGE,
70         auth: AUTH
71       }
72       client.distTags.set(BASE_URL, params, nop)
73     },
74     {
75       name: 'AssertionError',
76       message: 'must pass distTags map to distTags.set'
77     },
78     'distTags.set must include dist-tags'
79   )
80
81   t.throws(
82     function () {
83       var params = {
84         'package': PACKAGE,
85         distTags: DIST_TAGS
86       }
87       client.distTags.set(BASE_URL, params, nop)
88     },
89     { name: 'AssertionError', message: 'must pass auth to distTags.set' },
90     'distTags.set must include auth'
91   )
92
93   t.end()
94 })
95
96 test('set dist-tags for a package', function (t) {
97   server.expect('PUT', URI, function (req, res) {
98     t.equal(req.method, 'PUT')
99
100     var b = ''
101     req.setEncoding('utf8')
102     req.on('data', function (d) {
103       b += d
104     })
105
106     req.on('end', function () {
107       var d = JSON.parse(b)
108       t.deepEqual(d, DIST_TAGS, 'got back tags')
109
110       res.statusCode = 200
111       res.json(DIST_TAGS)
112     })
113   })
114
115   client.distTags.set(BASE_URL, PARAMS, function (error, data) {
116     t.ifError(error, 'no errors')
117     t.ok(data.a && data.b, 'dist-tags set')
118
119     server.close()
120     t.end()
121   })
122 })