]> 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/publish-new-mixcase-name.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 / publish-new-mixcase-name.js
1 var test = require('tap').test
2 var crypto = require('crypto')
3 var fs = require('fs')
4
5 var server = require('./lib/server.js')
6 var common = require('./lib/common.js')
7 var client = common.freshClient()
8
9 var URI = 'http://localhost:1337/'
10 var USERNAME = 'username'
11 var PASSWORD = '%1234@asdf%'
12 var EMAIL = 'i@izs.me'
13 var METADATA = require('../package.json')
14 var ACCESS = 'public'
15 // not really a tarball, but doesn't matter
16 var BODY_PATH = require.resolve('../package.json')
17 var BODY = fs.createReadStream(BODY_PATH)
18 var AUTH = {
19   username: USERNAME,
20   password: PASSWORD,
21   email: EMAIL
22 }
23 var PARAMS = {
24   metadata: METADATA,
25   access: ACCESS,
26   body: BODY,
27   auth: AUTH
28 }
29
30 test('publish-new-mixcase-name', function (t) {
31   var pd = fs.readFileSync(BODY_PATH)
32
33   // change to mixed-case name
34   METADATA.name = 'npm-Registry-Client'
35
36   server.expect('/npm-Registry-Client', function (req, res) {
37     t.equal(req.method, 'PUT')
38     var b = ''
39     req.setEncoding('utf8')
40     req.on('data', function (d) {
41       b += d
42     })
43
44     req.on('end', function () {
45       var o = JSON.parse(b)
46       t.equal(o._id, 'npm-Registry-Client')
47       t.equal(o['dist-tags'].latest, METADATA.version)
48       t.equal(o.access, ACCESS)
49       t.has(o.versions[METADATA.version], METADATA)
50       t.same(o.maintainers, [{ name: 'username', email: 'i@izs.me' }])
51       t.same(o.maintainers, o.versions[METADATA.version].maintainers)
52
53       var att = o._attachments[METADATA.name + '-' + METADATA.version + '.tgz']
54       t.same(att.data, pd.toString('base64'))
55
56       var hash = crypto.createHash('sha1').update(pd).digest('hex')
57       t.equal(o.versions[METADATA.version].dist.shasum, hash)
58
59       res.statusCode = 403
60       res.json({error: 'Name must be lower-case'})
61     })
62   })
63
64   client.publish(URI, PARAMS, function (er, data, json, res) {
65     t.assert(er instanceof Error) // expect error
66
67     // TODO: need a test that ensures useful error message
68     // t.similar(data.error, /must be lower-case/)
69
70     server.close()
71     t.end()
72   })
73 })