• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1var fs = require('fs')
2var path = require('path')
3var mocha = require('mocha')
4var assert = require('assert')
5var requireUncached = require('require-uncached')
6
7var npmRcPath = path.join(__dirname, '..', '.npmrc')
8var afterEach = mocha.afterEach
9var describe = mocha.describe
10var it = mocha.it
11
12describe('registry-url', function () {
13  afterEach(function (done) {
14    fs.unlink(npmRcPath, function () {
15      done()
16    })
17  })
18
19  it('should read global if no local is found', function () {
20    var getRegistryUrl = requireUncached('../registry-url')
21    getRegistryUrl()
22  })
23
24  it('should return default registry if no url is given for scope', function (done) {
25    fs.writeFile(npmRcPath, 'registry=https://registry.npmjs.org/', function (err) {
26      var getRegistryUrl = requireUncached('../registry-url')
27      assert(!err, err)
28      assert.equal(getRegistryUrl('@somescope'), 'https://registry.npmjs.org/')
29      done()
30    })
31  })
32
33  it('should return registry url if url is given for scope ', function (done) {
34    fs.writeFile(npmRcPath, '@somescope:registry=https://some.registry/', function (err) {
35      var getRegistryUrl = requireUncached('../registry-url')
36      assert(!err, err)
37      assert.equal(getRegistryUrl('@somescope'), 'https://some.registry/')
38      done()
39    })
40  })
41
42  it('should append trailing slash if not present', function (done) {
43    fs.writeFile(npmRcPath, '@somescope:registry=https://some.registry', function (err) {
44      var getRegistryUrl = requireUncached('../registry-url')
45      assert(!err, err)
46      assert.equal(getRegistryUrl('@somescope'), 'https://some.registry/')
47      done()
48    })
49  })
50
51  it('should return configured global registry if given', function (done) {
52    var content = [
53      'registry=http://registry.foobar.eu/',
54      '@somescope:registry=https://some.url/', ''
55    ].join('\n')
56
57    fs.writeFile(npmRcPath, content, function (err) {
58      var getRegistryUrl = requireUncached('../registry-url')
59      assert(!err, err)
60      assert.equal(getRegistryUrl(), 'http://registry.foobar.eu/')
61      done()
62    })
63  })
64})
65