cqr-env
Version:
Have multiple env files that can be encrypted and included in version control
48 lines (40 loc) • 1.59 kB
JavaScript
const test = require('ava')
const pkg = require('../index')
test('multiple', function (t) {
const env = pkg(['tests/A/*.env.js', 'tests/A/*.env.json', 'tests/A/*.env'])
t.deepEqual(env, { x: { mode: 'on' }, y: [1, 2, 3], url: 'example.com' })
})
test('options.name = false', function (t) {
process.env.NODE_ENV = 'development'
const env = pkg(`tests/B/${process.env.NODE_ENV}.env.js`, { name: false })
t.deepEqual(env, { host: 'localhost' })
})
test('options.name = "name"', function (t) {
process.env.NODE_ENV = 'development'
const env = pkg(`tests/B/${process.env.NODE_ENV}.env.js`, { name: 'node_env' })
t.deepEqual(env, { node_env: { host: 'localhost' }})
})
test('options = false', function (t) {
process.env.NODE_ENV = 'development'
const env = pkg(`tests/B/${process.env.NODE_ENV}.env.js`, false)
t.deepEqual(env, { host: 'localhost' })
})
test('defaults', function (t) {
process.env.NODE_ENV = ''
const env = pkg(`tests/B/${process.env.NODE_ENV || 'default'}.env.js`, { name: false })
t.deepEqual(env, { host: 'localhost', port: 1234 })
process.env.NODE_ENV = 'production'
const Default = pkg('tests/B/default.env.js', { name: false })
const env2 = { ...Default, ...pkg(`tests/B/${process.env.NODE_ENV}.env.js`, { name: false }) }
t.deepEqual(env2, { host: 'example.com', port: 1234})
})
test('raw format', function (t) {
const env = pkg('tests/E/.env')
t.deepEqual(env, {
V: '2021-08-09T11:35:18.779Z',
W: 'testing\nmulti-line\nvariables',
X: {},
Y: 'a',
Z: 1
})
})