feat: Allow for custom CLI and variable options

* feat: (AppRunner) Mechanism to configure cli args and derive componentsjs vars from them implemented

* fix: (AppRunner) tidying

* fix: (AppRunner) tidying up

* fix: (AppRunner) runCli method made sync

* fix; (VarResolver) refactored to multiple files, and other stylistic fixes.

* chore: (AppRunner) Uses builder pattern for yargs base arguments setup to enable better typescript inference

* fix(AppRunner): refactoring AppRunner and VarResolver

* fix(AppRunner): refactoring AppRunner promise handling

* fix(AppRunner): verror dependency removal

* fix: Simplify CLI error handling

* feat: Use same config for both CLI and app instantiation

* fix: Update typings and imports

* feat: Split VariableResolver behaviour to 2 classes

* feat: Move default value behaviour from CLI to ValueComputers

* test: Add unit tests for new CLI classes

* feat: Integrate new CLI configuration with all default configurations

* feat: Add createApp function to AppRunner

* docs: Update comments in CLI-related classes

* fix: Various fixes and refactors

Co-authored-by: damooo <damodara@protonmail.com>
This commit is contained in:
Joachim Van Herwegen
2022-02-11 10:00:12 +01:00
committed by GitHub
parent d067165b68
commit c216efd62f
39 changed files with 1026 additions and 373 deletions

View File

@@ -0,0 +1,19 @@
import { KeyExtractor } from '../../../../../src/init/variables/extractors/KeyExtractor';
describe('An KeyExtractor', (): void => {
const key = 'test';
let extractor: KeyExtractor;
beforeEach(async(): Promise<void> => {
extractor = new KeyExtractor(key);
});
it('extracts the value.', async(): Promise<void> => {
await expect(extractor.handle({ test: 'data', notTest: 'notData' })).resolves.toBe('data');
});
it('defaults to a given value if none is defined.', async(): Promise<void> => {
extractor = new KeyExtractor(key, 'defaultData');
await expect(extractor.handle({ notTest: 'notData' })).resolves.toBe('defaultData');
});
});