forked from microsoft/rushstack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDynamicCommandLineParser.test.ts
More file actions
36 lines (30 loc) · 1.25 KB
/
DynamicCommandLineParser.test.ts
File metadata and controls
36 lines (30 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
// See LICENSE in the project root for license information.
import { DynamicCommandLineParser } from '../DynamicCommandLineParser';
import { DynamicCommandLineAction } from '../DynamicCommandLineAction';
import { CommandLineFlagParameter } from '../CommandLineParameter';
describe('DynamicCommandLineParser', () => {
it('parses an action', () => {
const commandLineParser: DynamicCommandLineParser = new DynamicCommandLineParser(
{
toolFilename: 'example',
toolDescription: 'An example project'
}
);
const action: DynamicCommandLineAction = new DynamicCommandLineAction({
actionName: 'do:the-job',
summary: 'does the job',
documentation: 'a longer description'
});
commandLineParser.addAction(action);
action.defineFlagParameter({
parameterLongName: '--flag',
description: 'The flag'
});
return commandLineParser.execute(['do:the-job', '--flag']).then(() => {
expect(commandLineParser.selectedAction).toEqual(action);
const retrievedParameter: CommandLineFlagParameter = action.getFlagParameter('--flag');
expect(retrievedParameter.value).toBe(true);
});
});
});