art-config
Version:
A powerful yet simple tool for configuring all your libraries consistently.
5 lines (4 loc) • 3.89 kB
JavaScript
"use strict"
let Caf = require('caffeine-script-runtime');
Caf.defMod(module, () => {return Caf.importInvoke(["describe", "test", "assert", "getArtConfig", "merge", "beforeAll", "configure", "getArtConfigName", "Configuration", "isDev", "isProd", "isTest", "afterAll", "ConfigRegistry"], [global, require('./StandardImport')], (describe, test, assert, getArtConfig, merge, beforeAll, configure, getArtConfigName, Configuration, isDev, isProd, isTest, afterAll, ConfigRegistry) => {let resetGlobals, testArtConfigGlobalConfig; resetGlobals = function() {global.artConfig = null; return global.artConfigName = null;}; testArtConfigGlobalConfig = function(name, f) {return test(name, () => {let value; value = f(); return assert.eq(getArtConfig(), merge({Test: {Art: {Config: {name: "TestName", verbose: false}}}}, value));});}; return describe({globalArtConfig: function() {beforeAll(() => configure({artConfigName: "Test"})); test("global artConfig location", () => {assert.isObject(getArtConfig()); return assert.eq(global.ArtConfig._artConfig, getArtConfig());}); return test("global artConfigName location", () => {assert.isString(getArtConfigName()); return assert.eq(global.ArtConfig._artConfigName, getArtConfigName());});}, isEnvTests: function() {let Production; Production = Caf.defClass(class Production extends Configuration {}); Production = Caf.defClass(class Production extends Configuration {}); test("isDev", () => {configure({configName: "Development"}); assert.eq(getArtConfigName(), "Development"); assert.true(isDev()); assert.false(isProd()); return assert.false(isTest());}); test("isProd", () => {configure({artConfigName: "Production"}); assert.eq(getArtConfigName(), "Production"); assert.false(isDev()); assert.true(isProd()); return assert.false(isTest());}); return test("isTest", () => {configure({artConfigName: "Test"}); assert.eq(getArtConfigName(), "Test"); assert.false(isDev()); assert.false(isProd()); return assert.true(isTest());});}, artConfigSources: function() {beforeAll(resetGlobals); testArtConfigGlobalConfig("args", () => {configure({artConfigName: "Test", artConfig: {foo: "argsBar"}}); return {foo: "argsBar"};}); testArtConfigGlobalConfig("global.artConfig", () => {global.artConfig = {foo: "globalBar"}; configure({artConfigName: "Test"}); return {foo: "globalBar"};}); return testArtConfigGlobalConfig("env", () => {configure({artConfigName: "Test", artConfig: {}, __testEnv: {artConfig: {foo: "envBar"}}}); return {foo: "envBar"};});}, pathedConfigProps: function() {beforeAll(resetGlobals); afterAll(resetGlobals); return testArtConfigGlobalConfig("foo.bar: 'globalBar'", () => {global.artConfig = {"foo.bar": "globalBar"}; configure({artConfigName: "Test"}); return {foo: {bar: "globalBar"}};});}, artConfigNameSources: function() {beforeAll(resetGlobals); afterAll(resetGlobals); testArtConfigGlobalConfig("baseline", () => {configure(); assert.eq(getArtConfigName(), "Development"); return {};}); testArtConfigGlobalConfig("args", () => {configure({artConfigName: "TestConfig"}); assert.eq(getArtConfigName(), "TestConfig"); return {propA: "propAFromTestConfig", MyGrouping: {propB: "foo", propC: "bar"}};}); testArtConfigGlobalConfig("global", () => {global.artConfigName = "TestConfig"; configure(); assert.eq(getArtConfigName(), "TestConfig"); return {propA: "propAFromTestConfig", MyGrouping: {propB: "foo", propC: "bar"}};}); return testArtConfigGlobalConfig("env", () => {configure({artConfig: {}, __testEnv: {artConfigName: "TestConfig"}}); assert.eq(getArtConfigName(), "TestConfig"); return {propA: "propAFromTestConfig", MyGrouping: {propB: "foo", propC: "bar"}};});}, configs: function() {return test("TestConfig got registered", () => assert.selectedEq({propA: "propAFromTestConfig", MyGrouping: {propB: "foo", propC: "bar"}}, ConfigRegistry.configs.TestConfig));}});});});
//# sourceMappingURL=ConfigRegistry.test.js.map