-
Notifications
You must be signed in to change notification settings - Fork 3.4k
/
Copy pathconfig-basic.js
79 lines (70 loc) · 1.73 KB
/
config-basic.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
var test = require('tap').test
var common = require('../common-config.js')
var npmconf = require('../../lib/config/core.js')
var path = require('path')
var projectData = {
}
var ucData = common.ucData
var envData = common.envData
var gcData = { 'package-config:foo': 'boo' }
var biData = {}
var cli = { foo: 'bar', umask: parseInt('022', 8) }
var expectNames = [
'cli',
'envData',
'projectData',
'ucData',
'gcData',
'biData'
]
var expectList = [
cli,
envData,
projectData,
ucData,
gcData,
biData
]
var expectSources = {
cli: { data: cli },
env: {
data: envData,
source: envData,
prefix: ''
},
project: {
path: path.resolve(__dirname, '..', '..', '.npmrc'),
type: 'ini',
data: projectData
},
user: {
path: common.userconfig,
type: 'ini',
data: ucData
},
global: {
path: common.globalconfig,
type: 'ini',
data: gcData
},
builtin: { data: biData }
}
function isDeeplyDetails (t, aa, bb, msg, seen) {
return t.same(aa, bb, msg)
}
test('no builtin', function (t) {
t.comment(process.env)
npmconf.load(cli, function (er, conf) {
if (er) throw er
expectNames.forEach(function (name, ii) {
isDeeplyDetails(t, conf.list[ii], expectList[ii], 'config properties list: ' + name)
})
isDeeplyDetails(t, conf.sources, expectSources, 'config by source')
t.same(npmconf.rootConf.list, [], 'root configuration is empty')
isDeeplyDetails(t, npmconf.rootConf.root, npmconf.defs.defaults, 'defaults')
isDeeplyDetails(t, conf.root, npmconf.defs.defaults, 'current root config is defaults')
t.is(conf.get('umask'), parseInt('022', 8), 'umask is as expected')
t.is(conf.get('heading'), 'npm', 'config name is as expected')
t.end()
})
})