• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1
2var n = 'rc'+Math.random()
3var assert = require('assert')
4
5process.env[n+'_envOption'] = 42
6
7var config = require('../')(n, {
8  option: true
9})
10
11console.log(config)
12
13assert.equal(config.option, true)
14assert.equal(config.envOption, 42)
15
16var customArgv = require('../')(n, {
17  option: true
18}, { // nopt-like argv
19  option: false,
20  envOption: 24,
21  argv: {
22    remain: [],
23    cooked: ['--no-option', '--envOption', '24'],
24    original: ['--no-option', '--envOption=24']
25  }
26})
27
28console.log(customArgv)
29
30assert.equal(customArgv.option, false)
31assert.equal(customArgv.envOption, 24)
32
33var fs = require('fs')
34var path = require('path')
35var jsonrc = path.resolve('.' + n + 'rc');
36
37fs.writeFileSync(jsonrc, [
38  '{',
39    '// json overrides default',
40    '"option": false,',
41    '/* env overrides json */',
42    '"envOption": 24',
43  '}'
44].join('\n'));
45
46var commentedJSON = require('../')(n, {
47  option: true
48})
49
50fs.unlinkSync(jsonrc);
51
52console.log(commentedJSON)
53
54assert.equal(commentedJSON.option, false)
55assert.equal(commentedJSON.envOption, 42)
56
57assert.equal(commentedJSON.config, jsonrc)
58assert.equal(commentedJSON.configs.length, 1)
59assert.equal(commentedJSON.configs[0], jsonrc)
60