mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00

* 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>
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { CombinedSettingsResolver } from '../../../../src/init/variables/CombinedSettingsResolver';
|
|
import type { SettingsExtractor } from '../../../../src/init/variables/extractors/SettingsExtractor';
|
|
|
|
describe('A CombinedSettingsResolver', (): void => {
|
|
const values = { test: 'data' };
|
|
const varPort = 'urn:solid-server:default:variable:port';
|
|
const varLog = 'urn:solid-server:default:variable:loggingLevel';
|
|
let computerPort: jest.Mocked<SettingsExtractor>;
|
|
let computerLog: jest.Mocked<SettingsExtractor>;
|
|
let resolver: CombinedSettingsResolver;
|
|
|
|
beforeEach(async(): Promise<void> => {
|
|
computerPort = {
|
|
handleSafe: jest.fn().mockResolvedValue(3000),
|
|
} as any;
|
|
|
|
computerLog = {
|
|
handleSafe: jest.fn().mockResolvedValue('info'),
|
|
} as any;
|
|
|
|
resolver = new CombinedSettingsResolver({
|
|
[varPort]: computerPort,
|
|
[varLog]: computerLog,
|
|
});
|
|
});
|
|
|
|
it('assigns variable values based on the Computers output.', async(): Promise<void> => {
|
|
await expect(resolver.handle(values)).resolves.toEqual({
|
|
[varPort]: 3000,
|
|
[varLog]: 'info',
|
|
});
|
|
});
|
|
|
|
it('rethrows the error if something goes wrong.', async(): Promise<void> => {
|
|
computerPort.handleSafe.mockRejectedValueOnce(new Error('bad data'));
|
|
await expect(resolver.handle(values)).rejects.toThrow(`Error in computing value for variable ${varPort}: bad data`);
|
|
});
|
|
});
|