|
1 |
| -const {assert} = require('chai'); |
| 1 | +const { assert } = require('chai'); |
2 | 2 | const config = require('config');
|
3 | 3 | const altConfig = require('@alt-javascript/config').config;
|
4 |
| -const {EphemeralConfig,ConfigFactory,ValueResolvingConfig} = require('@alt-javascript/config'); |
5 |
| -const {boot} = require('..'); |
6 |
| -const {CachingLoggerFactory,LoggerFactory,LoggerCategoryCache} = require('@alt-javascript/logger'); |
7 |
| -const logger = LoggerFactory.getLogger('@alt-javascript/boot/test/boot_spec',config); |
| 4 | +const { EphemeralConfig, ConfigFactory, ValueResolvingConfig } = require('@alt-javascript/config'); |
| 5 | +const { CachingLoggerFactory, LoggerFactory, LoggerCategoryCache } = require('@alt-javascript/logger'); |
| 6 | +const { boot } = require('..'); |
| 7 | + |
| 8 | +const logger = LoggerFactory.getLogger('@alt-javascript/boot/test/boot_spec', config); |
8 | 9 |
|
9 | 10 | before(async () => {
|
10 |
| - logger.verbose(`before spec setup started`); |
| 11 | + logger.verbose('before spec setup started'); |
11 | 12 | // ..
|
12 |
| - logger.verbose(`before spec setup completed`); |
| 13 | + logger.verbose('before spec setup completed'); |
13 | 14 | });
|
14 | 15 |
|
15 | 16 | beforeEach(async () => {
|
16 |
| - logger.verbose(`before each setup started`); |
| 17 | + logger.verbose('before each setup started'); |
17 | 18 | // ..
|
18 |
| - logger.verbose(`before each setup completed`); |
| 19 | + logger.verbose('before each setup completed'); |
19 | 20 | });
|
20 | 21 |
|
21 | 22 | after(async () => {
|
22 |
| - logger.verbose(`after teardown started`); |
| 23 | + logger.verbose('after teardown started'); |
23 | 24 | // ...
|
24 |
| - logger.verbose(`after teardown completed`); |
| 25 | + logger.verbose('after teardown completed'); |
25 | 26 | });
|
26 | 27 |
|
27 | 28 | beforeEach(async () => {
|
28 |
| - logger.verbose(`before each setup started`); |
| 29 | + logger.verbose('before each setup started'); |
29 | 30 | // ..
|
30 |
| - logger.verbose(`before each setup completed`); |
| 31 | + logger.verbose('before each setup completed'); |
31 | 32 | });
|
32 | 33 |
|
33 | 34 | describe('boot function', () => {
|
34 | 35 | it('boot - config is required', () => {
|
35 |
| - assert.throws(()=>{boot()},'Unable to detect config, is \'config\' declared or provided?'); |
| 36 | + assert.throws(() => { boot(); }, 'Unable to detect config, is \'config\' declared or provided?'); |
36 | 37 | });
|
37 | 38 | it('boot - config ', () => {
|
38 |
| - const config = new EphemeralConfig({}); |
39 |
| - boot({config:config}); |
40 |
| - assert.instanceOf(global.boot.contexts.root.config,ValueResolvingConfig,'global.boot.contexts.root.config instanceof ValueResolvingConfig'); |
41 |
| - assert.instanceOf(global.boot.contexts.root.loggerFactory,LoggerFactory,'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
42 |
| - assert.instanceOf(global.boot.contexts.root.loggerCategoryCache,LoggerCategoryCache,'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
| 39 | + const ephemeralConfig = new EphemeralConfig({}); |
| 40 | + boot({ config: ephemeralConfig }); |
| 41 | + assert.instanceOf(global.boot.contexts.root.config, ValueResolvingConfig, 'global.boot.contexts.root.config instanceof ValueResolvingConfig'); |
| 42 | + assert.instanceOf(global.boot.contexts.root.loggerFactory, LoggerFactory, 'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
| 43 | + assert.instanceOf(global.boot.contexts.root.loggerCategoryCache, LoggerCategoryCache, 'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
43 | 44 | global.boot = undefined;
|
44 | 45 | });
|
45 | 46 | it('boot - config with ValueResolvingConfig ', () => {
|
46 |
| - const config = ConfigFactory.getConfig(new EphemeralConfig({})) ; |
47 |
| - boot({config:config}); |
48 |
| - assert.instanceOf(global.boot.contexts.root.config,ValueResolvingConfig,'global.boot.contexts.root.config instanceof ValueResolvingConfig'); |
49 |
| - assert.instanceOf(global.boot.contexts.root.loggerFactory,LoggerFactory,'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
50 |
| - assert.instanceOf(global.boot.contexts.root.loggerCategoryCache,LoggerCategoryCache,'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
| 47 | + const ephemeralConfig = ConfigFactory.getConfig(new EphemeralConfig({})); |
| 48 | + boot({ config: ephemeralConfig }); |
| 49 | + assert.instanceOf(global.boot.contexts.root.config, ValueResolvingConfig, 'global.boot.contexts.root.config instanceof ValueResolvingConfig'); |
| 50 | + assert.instanceOf(global.boot.contexts.root.loggerFactory, LoggerFactory, 'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
| 51 | + assert.instanceOf(global.boot.contexts.root.loggerCategoryCache, LoggerCategoryCache, 'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
51 | 52 | global.boot = undefined;
|
52 | 53 | });
|
53 | 54 |
|
54 | 55 | it('boot - config detects global config', () => {
|
55 |
| - const config = new EphemeralConfig({}); |
56 |
| - global.config = config |
| 56 | + const ephemeralConfig = new EphemeralConfig({}); |
| 57 | + global.config = ephemeralConfig; |
57 | 58 | boot();
|
58 |
| - assert.instanceOf(global.boot.contexts.root.config,ValueResolvingConfig,'global.boot.contexts.root.config instanceof ValueResolvingConfig'); |
59 |
| - assert.instanceOf(global.boot.contexts.root.loggerFactory,LoggerFactory,'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
60 |
| - assert.instanceOf(global.boot.contexts.root.loggerCategoryCache,LoggerCategoryCache,'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
| 59 | + assert.instanceOf(global.boot.contexts.root.config, ValueResolvingConfig, 'global.boot.contexts.root.ephemeralConfig instanceof ValueResolvingConfig'); |
| 60 | + assert.instanceOf(global.boot.contexts.root.loggerFactory, LoggerFactory, 'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
| 61 | + assert.instanceOf(global.boot.contexts.root.loggerCategoryCache, LoggerCategoryCache, 'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
61 | 62 | global.boot = undefined;
|
62 | 63 | global.config = undefined;
|
63 | 64 | });
|
64 | 65 |
|
65 | 66 | it('boot - config detects global browser config', () => {
|
66 |
| - const config = new EphemeralConfig({}); |
67 |
| - global.window = {config : config}; |
| 67 | + const ephemeralConfig = new EphemeralConfig({}); |
| 68 | + global.window = { config: ephemeralConfig }; |
68 | 69 | boot();
|
69 |
| - assert.instanceOf(global.window.boot.contexts.root.config,ValueResolvingConfig,'global.boot.contexts.root.config instanceof ValueResolvingConfig'); |
70 |
| - assert.instanceOf(global.window.boot.contexts.root.loggerFactory,LoggerFactory,'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
71 |
| - assert.instanceOf(global.window.boot.contexts.root.loggerCategoryCache,LoggerCategoryCache,'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
| 70 | + assert.instanceOf(global.window.boot.contexts.root.config, ValueResolvingConfig, 'global.boot.contexts.root.config instanceof ValueResolvingConfig'); |
| 71 | + assert.instanceOf(global.window.boot.contexts.root.loggerFactory, LoggerFactory, 'global.boot.contexts.root.loggerFactory instanceof LoggerFactory'); |
| 72 | + assert.instanceOf(global.window.boot.contexts.root.loggerCategoryCache, LoggerCategoryCache, 'global.boot.contexts.root.loggerCategoryCache instanceof loggerCategoryCache'); |
72 | 73 | global.boot = undefined;
|
73 | 74 | global.window = undefined;
|
74 | 75 | });
|
75 | 76 |
|
76 | 77 | it('boot - LoggerFactory detects boot root context', () => {
|
77 |
| - const config = new EphemeralConfig({logging:{level:{'/': 'info'}}}); |
78 |
| - const cachingLoggerFactory = new CachingLoggerFactory(config, new LoggerCategoryCache()); |
| 78 | + const ephemeralConfig = new EphemeralConfig({ logging: { level: { '/': 'info' } } }); |
| 79 | + const cachingLoggerFactory = new CachingLoggerFactory(ephemeralConfig, |
| 80 | + new LoggerCategoryCache()); |
79 | 81 |
|
80 |
| - boot({config:config,loggerFactory:cachingLoggerFactory}); |
81 |
| - const logger = LoggerFactory.getLogger('@alt-javascript/boot/test/boot_spec') |
| 82 | + boot({ config: ephemeralConfig, loggerFactory: cachingLoggerFactory }); |
| 83 | + const cachingLogger = LoggerFactory.getLogger('@alt-javascript/boot/test/boot_spec'); |
82 | 84 |
|
83 |
| - logger.info('message'); |
84 |
| - assert.equal(logger.provider.console.cache.length, 1, 'logger.provider.console.cache.length === 1'); |
85 |
| - assert.isTrue(logger.provider.console.cache[0].includes('"level":"info","message":"message"'),'logger.provider.console.cache[0].includes(\'"level":"info","message":"message"\')'); |
| 85 | + cachingLogger.info('message'); |
| 86 | + assert.equal(cachingLogger.provider.console.cache.length, 1, 'logger.provider.console.cache.length === 1'); |
| 87 | + assert.isTrue(cachingLogger.provider.console.cache[0].includes('"level":"info","message":"message"'), 'logger.provider.console.cache[0].includes(\'"level":"info","message":"message"\')'); |
86 | 88 | global.boot = undefined;
|
87 | 89 | });
|
88 | 90 |
|
89 | 91 | it('boot - uses config local-development', () => {
|
90 | 92 | const cachingLoggerFactory = new CachingLoggerFactory(config, new LoggerCategoryCache());
|
91 |
| - boot({config:config,loggerFactory:cachingLoggerFactory}); |
92 |
| - const logger = LoggerFactory.getLogger('@alt-javascript/boot/test/boot_spec/local-development') |
| 93 | + boot({ config, loggerFactory: cachingLoggerFactory }); |
| 94 | + const cachingLogger = LoggerFactory.getLogger('@alt-javascript/boot/test/boot_spec/local-development'); |
93 | 95 |
|
94 |
| - logger.debug('message'); |
95 |
| - assert.equal(logger.provider.console.cache.length, 1, 'logger.provider.console.cache.length === 1'); |
96 |
| - assert.isTrue(logger.provider.console.cache[0].includes('"level":"debug","message":"message"'),'logger.provider.console.cache[0].includes(\'"level":"debug","message":"message"\')'); |
| 96 | + cachingLogger.debug('message'); |
| 97 | + assert.equal(cachingLogger.provider.console.cache.length, 1, 'logger.provider.console.cache.length === 1'); |
| 98 | + assert.isTrue(cachingLogger.provider.console.cache[0].includes('"level":"debug","message":"message"'), 'logger.provider.console.cache[0].includes(\'"level":"debug","message":"message"\')'); |
97 | 99 | global.boot = undefined;
|
98 | 100 | });
|
99 | 101 |
|
100 | 102 | it('boot - config works', () => {
|
101 |
| - let configValue = config.get('spec'); |
102 |
| - let altValue = altConfig.get('spec','default'); |
| 103 | + const configValue = config.get('spec'); |
| 104 | + const altValue = altConfig.get('spec', 'default'); |
103 | 105 |
|
104 | 106 | logger.debug('message');
|
| 107 | + // eslint-disable-next-line no-template-curly-in-string |
105 | 108 | assert.equal(configValue, '${module}/test/boot_spec', 'configValue === \'${module}/test/boot_spec\'');
|
106 | 109 | assert.equal(altValue, '@alt-javascript/boot/test/boot_spec', 'configValue === \'@alt-javascript/boot/test/boot_spec\'');
|
107 | 110 | });
|
|
0 commit comments