mikro-config
Version:
tiny node config wrapper for plain JS configuration files
56 lines (51 loc) • 2.29 kB
text/typescript
process.env.NODE_CONFIG_DIR = __dirname + '/js-conf';
process.env.MIKRO_CONFIG_PREFIX = 'MY_TEST_APP_';
process.env.MY_TEST_APP_KEY1 = 'value2';
process.env.MY_TEST_APP_KEY5___SUB_KEY3 = 'false';
import config from '../lib';
describe('mikro-config [js conf + ENV]', () => {
it('has `get` method', () => {
expect(config.get('key1')).toBe('value2');
expect(config.get('key2')).toBe(123);
expect(config.get('key3')).toBe(false);
expect(config.get('key4')).toBe(true);
expect(config.get('key5')).toBeInstanceOf(Object);
expect(config.get('key5.subKey1')).toBe(1);
expect(config.get('key5.subKey2')).toBe('2');
expect(config.get('key5.subKey3')).toBe('false');
expect(config.get('key5.subKey4')).toBe(true);
expect(config.get('routes')).toBeInstanceOf(Object);
expect(config.get('routes.route1')).toBe('path1');
expect(config.get('routes.route2')).toBe('path2');
expect(config.get('routes.route3')).toBe(1);
expect(config.get('routes.route4')).toBe('false');
expect(config.get('routes.route5')).toBe(`ServiceName('false')`);
expect(config.get('routes.route6')).toBe(`ServiceName(1)`);
expect(config.get('routes.route7')).toBe(`ServiceName('false', 1)`);
expect(config.get('routes.route8')).toBe(`ServiceName('false', 1, 'test', 456)`);
});
it('has direct property getter', () => {
expect(config.key1).toBe('value2');
expect(config.key2).toBe(123);
expect(config.key3).toBe(false);
expect(config.key4).toBe(true);
expect(config.key5).toBeInstanceOf(Object);
expect(config.key5.subKey1).toBe(1);
expect(config.key5.subKey2).toBe('2');
expect(config.key5.subKey3).toBe('false');
expect(config.key5.subKey4).toBe(true);
});
it('has `has` method', () => {
expect(config.has('key1')).toBe(true);
expect(config.has('key2')).toBe(true);
expect(config.has('key3')).toBe(true);
expect(config.has('key4')).toBe(true);
expect(config.has('key5')).toBe(true);
expect(config.has('key6')).toBe(false);
expect(config.has('key5.subKey1')).toBe(true);
expect(config.has('key5.subKey2')).toBe(true);
expect(config.has('key5.subKey3')).toBe(true);
expect(config.has('key5.subKey4')).toBe(true);
expect(config.has('key5.subKey5')).toBe(false);
});
});