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