• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict'
2var path = require('path')
3var test = require('tap').test
4var common = require('../common-tap')
5var mr = require('npm-registry-mock')
6var server1
7var server2
8
9var packageName = path.basename(__filename, '.js')
10
11var fooPkg = {
12  name: packageName,
13  versions: {
14    '0.0.0': {
15      name: packageName,
16      version: '0.0.0',
17      dist: {
18        tarball: 'https://localhost:' + common.altPort + '/registry/' + packageName + '/-/' + packageName + '-0.0.0.tgz',
19        shasum: '356a192b7913b04c54574d18c28d46e6395428ab'
20      }
21    }
22  }
23}
24
25var iPackageName = packageName + 'i'
26var fooiPkg = {
27  name: iPackageName,
28  versions: {
29    '0.0.0': {
30      name: iPackageName,
31      version: '0.0.0',
32      dist: {
33        tarball: 'http://127.0.0.1:' + common.altPort + '/registry/' + iPackageName + '/-/' + iPackageName + '-0.0.0.tgz',
34        shasum: '356a192b7913b04c54574d18c28d46e6395428ab'
35      }
36    }
37  }
38}
39
40test('setup', function (t) {
41  mr({
42    port: common.port,
43    throwOnUnmatched: true
44  }, function (err, s) {
45    t.ifError(err, 'registry mocked successfully')
46    server1 = s
47    mr({
48      port: common.altPort,
49      throwOnUnmatched: true
50    }, function (err, s) {
51      t.ifError(err, 'registry mocked successfully')
52      server2 = s
53      t.end()
54    })
55  })
56})
57
58test('tarball paths should update port if updating protocol', function (t) {
59  server1.get('/registry/' + packageName).reply(200, fooPkg)
60  server1.get(
61    '/registry/' + packageName + '/-/' + packageName + '-0.0.0.tgz'
62  ).reply(200, '1')
63
64  common.npm(
65    [
66      'cache',
67      'add',
68      packageName + '@0.0.0',
69      '--registry',
70      'http://localhost:' + common.port + '/registry'
71    ],
72    {},
73    function (er, code, stdout, stderr) {
74      if (er) { throw er }
75      t.equal(stderr, '', 'no error output')
76      t.equal(code, 0, 'addNamed worked')
77      server1.done()
78      t.end()
79    }
80  )
81})
82
83test('tarball paths should NOT update if different hostname', function (t) {
84  server1.get('/registry/' + iPackageName).reply(200, fooiPkg)
85  server2.get(
86    '/registry/' + iPackageName + '/-/' + iPackageName + '-0.0.0.tgz'
87  ).reply(200, '1')
88
89  common.npm(
90    [
91      'cache',
92      'add',
93      iPackageName + '@0.0.0',
94      '--registry',
95      'http://localhost:' + common.port + '/registry'
96    ],
97    {},
98    function (er, code, stdout, stderr) {
99      if (er) { throw er }
100      t.equal(code, 0, 'addNamed worked')
101      server1.done()
102      server2.done()
103      t.end()
104    }
105  )
106})
107
108test('cleanup', function (t) {
109  t.pass('cleaned up')
110  server1.close()
111  server2.close()
112  t.end()
113})
114