env-writer
Version:
Streaming process.env writer
103 lines (88 loc) • 3.47 kB
JavaScript
;
var env = require('../index.js')
, expect = require('chai').expect,
envWriter
describe('env-writer module', function () {
describe('writing env vars', function () {
beforeEach(function () {
envWriter = env()
})
it('should accept an object with key and value properties', function () {
expect(process.env.THING).to.be.an('undefined')
envWriter.write({
key: 'THING',
value: 'stuff'
});
expect(process.env.THING).to.equal('stuff')
})
it('should accept an object with key and value', function () {
expect(process.env.OTHER_THING).to.be.an('undefined')
envWriter.write({'OTHER_THING': 'stuff'});
expect(process.env.OTHER_THING).to.equal('stuff')
})
it('should accept an object with multiple keys and values', function () {
expect(process.env.OTHER_THING1).to.be.an('undefined')
expect(process.env.OTHER_THING2).to.be.an('undefined')
expect(process.env.OTHER_THING3).to.be.an('undefined')
envWriter.write({
'OTHER_THING1': 'stuff1',
'OTHER_THING2': 'stuff2',
'OTHER_THING3': 'stuff3'
});
expect(process.env.OTHER_THING1).to.equal('stuff1')
expect(process.env.OTHER_THING2).to.equal('stuff2')
expect(process.env.OTHER_THING3).to.equal('stuff3')
})
it('should accept an array with 2 values', function () {
expect(process.env.SWAMP_THING).to.be.an('undefined')
envWriter.write(['SWAMP_THING', 'swamp stuff']);
expect(process.env.SWAMP_THING).to.equal('swamp stuff')
})
it('should accept an array of 2 value tuples', function () {
expect(process.env.SWAMP_THING1).to.be.an('undefined')
expect(process.env.SWAMP_THING2).to.be.an('undefined')
expect(process.env.SWAMP_THING3).to.be.an('undefined')
envWriter.write([
['SWAMP_THING1', 'swamp stuff1'],
['SWAMP_THING2', 'swamp stuff2'],
['SWAMP_THING3', 'swamp stuff3']
]);
expect(process.env.SWAMP_THING1).to.equal('swamp stuff1')
expect(process.env.SWAMP_THING2).to.equal('swamp stuff2')
expect(process.env.SWAMP_THING3).to.equal('swamp stuff3')
})
it('should accept a valid json string', function () {
expect(process.env.JSON).to.be.an('undefined')
envWriter.write(JSON.stringify({
key: 'JSON',
value: 'stuff'
}));
expect(process.env.JSON).to.equal('stuff')
})
it('should accept a valid json string buffer', function () {
expect(process.env.BUFFER).to.be.an('undefined')
envWriter.write(new Buffer(JSON.stringify({
key: 'BUFFER',
value: 'stuff'
})), 'utf8');
expect(process.env.BUFFER).to.equal('stuff')
})
it('should not overwrite existing process.env vars by default', function () {
process.env.DONT_OVERWRITE = 'not overwritten'
envWriter.write(new Buffer(JSON.stringify({
key: 'DONT_OVERWRITE',
value: 'overwritten!'
})), 'utf8');
expect(process.env.DONT_OVERWRITE).to.equal('not overwritten')
})
it('should overwrite existing process.env vars if specified', function () {
envWriter = env(true)
process.env.OVERWRITE_ME = 'not overwritten'
envWriter.write(new Buffer(JSON.stringify({
key: 'OVERWRITE_ME',
value: 'overwritten!'
})), 'utf8');
expect(process.env.OVERWRITE_ME).to.equal('overwritten!')
})
})
})