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