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>
29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import { AssetPathExtractor } from '../../../../../src/init/variables/extractors/AssetPathExtractor';
|
|
import { joinFilePath } from '../../../../../src/util/PathUtil';
|
|
|
|
describe('An AssetPathExtractor', (): void => {
|
|
let resolver: AssetPathExtractor;
|
|
|
|
beforeEach(async(): Promise<void> => {
|
|
resolver = new AssetPathExtractor('path');
|
|
});
|
|
|
|
it('resolves the asset path.', async(): Promise<void> => {
|
|
await expect(resolver.handle({ path: '/var/data' })).resolves.toBe('/var/data');
|
|
});
|
|
|
|
it('errors if the path is not a string.', async(): Promise<void> => {
|
|
await expect(resolver.handle({ path: 1234 })).rejects.toThrow('Invalid path argument');
|
|
});
|
|
|
|
it('converts paths containing the module path placeholder.', async(): Promise<void> => {
|
|
await expect(resolver.handle({ path: '@css:config/file.json' }))
|
|
.resolves.toEqual(joinFilePath(__dirname, '../../../../../config/file.json'));
|
|
});
|
|
|
|
it('defaults to the given path if none is provided.', async(): Promise<void> => {
|
|
resolver = new AssetPathExtractor('path', '/root');
|
|
await expect(resolver.handle({ otherPath: '/var/data' })).resolves.toBe('/root');
|
|
});
|
|
});
|