@provartesting/provardx-cli 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,9 +27,11 @@ $ sf plugins uninstall @provartesting/provardx-cli
27
27
 
28
28
  # Commands
29
29
 
30
+ - [`sf provar config get`](#sf-provar-config-get)
31
+ - [`sf provar config set`](#sf-provar-config-set)
30
32
  - [`sf provar automation config generate`](#sf-provar-automation-config-generate)
31
- - [`sf provar automation config validate`](#sf-provar-automation-config-validate)
32
33
  - [`sf provar automation config load`](#sf-provar-automation-config-load)
34
+ - [`sf provar automation config validate`](#sf-provar-automation-config-validate)
33
35
  - [`sf provar automation config get`](#sf-provar-automation-config-get)
34
36
  - [`sf provar automation config set`](#sf-provar-automation-config-set)
35
37
  - [`sf provar automation setup`](#sf-provar-automation-setup)
@@ -37,50 +39,88 @@ $ sf plugins uninstall @provartesting/provardx-cli
37
39
  - [`sf provar automation metadata download`](#sf-provar-automation-metadata-download)
38
40
  - [`sf provar automation test run`](#sf-provar-automation-test-run)
39
41
  - [`sf provar manager connect`](#sf-provar-manager-connect)
42
+ - [`sf provar manager display`](#sf-provar-manager-display)
43
+ - [`sf provar manager open`](#sf-provar-manager-open)
40
44
  - [`sf provar manager testcase retrieve`](#sf-provar-manager-testcase-retrieve)
45
+ - [`sf provar manager test run`](#sf-provar-manager-test-run)
46
+ - [`sf provar manager test run report`](#sf-provar-manager-test-run-report)
41
47
 
42
- ## `sf provar automation config generate`
48
+ ## `sf provar config get`
43
49
 
44
- Generate a boilerplate ProvarDX properties file.
50
+ Retrieve a value from the specified JSON file.
45
51
 
46
52
  ```
47
53
  USAGE
48
- $ sf provar automation config generate [--json] [-p <value>]
54
+ $ sf provar config get -f <value> [--json]
49
55
 
50
56
  FLAGS
51
- -p, --properties-file=<value> (required) Path to the properties file that will be generated.
52
- -n, --no-prompt Don't prompt to confirm file should be overwritten.
57
+ -f, --file-path=<value> (required) File path of the JSON file to get the property value from.
53
58
 
54
59
  GLOBAL FLAGS
55
- --json Format output as json.
60
+ --json Format output as json.
56
61
 
57
62
  DESCRIPTION
58
- Generate a boilerplate property file.
63
+ Retrieve a value from the specified JSON file.
59
64
 
60
65
  EXAMPLES
61
- Generate a basic properties file named provardx-properties.json:
66
+ Get the testEnvironment value within the environment property from the config.json file:
62
67
 
63
- $ sf provar automation config generate -p provardx-properties.json
68
+ $ sf provar config get environment.testEnvironment -f config.json
64
69
  ```
65
70
 
66
- ## `sf provar automation config validate`
71
+ ## `sf provar config set`
67
72
 
68
- Check if the loaded properties file has all the required properties set.
73
+ Set one or more properties in the specified JSON file.
69
74
 
70
75
  ```
71
76
  USAGE
72
- $ sf provar automation config validate [--json]
77
+ $ sf provar config set [--json]
78
+
79
+ FLAGS
80
+ -f, --file-path=<value> (required) File path of the JSON file to get the property value from.
73
81
 
74
82
  GLOBAL FLAGS
75
83
  --json Format output as json.
76
84
 
77
85
  DESCRIPTION
78
- Check if the loaded properties file has all the required properties set.
86
+ Set one or more properties in the specified JSON file.
79
87
 
80
88
  EXAMPLES
81
- Check if the loaded properties file has all the required properties set:
82
-
83
- $ sf provar automation config validate
89
+ Set the environment to “SIT” in the config.json properties file:
90
+
91
+ $ sf provar config set environment.testEnvironment="SIT" -f config.json
92
+
93
+ Set the testEnvironment to “SIT” and the webBrowser to “Chrome”, within the environment property.
94
+
95
+ $ sf provar config set environment.testEnvironment="SIT" environment.webBrowser="Chrome" -f config.json
96
+
97
+ Set testCases to a list of test case paths in the config.json properties file.
98
+
99
+ $ sf provar config set testCases='["tests/myTestCase.testcase","tests/testSuite1/myTestCase1.testCase"]' -f config.json
100
+ ```
101
+
102
+ ## `sf provar automation config generate`
103
+
104
+ Generate a boilerplate ProvarDX properties file.
105
+
106
+ ```
107
+ USAGE
108
+ $ sf provar automation config generate [--json] [-p <value>]
109
+
110
+ FLAGS
111
+ -p, --properties-file=<value> (required) Path to the properties file that will be generated.
112
+ -n, --no-prompt Don't prompt to confirm file should be overwritten.
113
+
114
+ GLOBAL FLAGS
115
+ --json Format output as json.
116
+
117
+ DESCRIPTION
118
+ Generate a boilerplate property file.
119
+
120
+ EXAMPLES
121
+ Generate a basic properties file named provardx-properties.json:
122
+
123
+ $ sf provar automation config generate -p provardx-properties.json
84
124
  ```
85
125
 
86
126
  ## `sf provar automation config load`
@@ -106,6 +146,26 @@ EXAMPLES
106
146
  $ sf provar automation config load -p myproperties.json
107
147
  ```
108
148
 
149
+ ## `sf provar automation config validate`
150
+
151
+ Check if the loaded properties file has all the required properties set.
152
+
153
+ ```
154
+ USAGE
155
+ $ sf provar automation config validate [--json]
156
+
157
+ GLOBAL FLAGS
158
+ --json Format output as json.
159
+
160
+ DESCRIPTION
161
+ Check if the loaded properties file has all the required properties set.
162
+
163
+ EXAMPLES
164
+ Check if the loaded properties file has all the required properties set:
165
+
166
+ $ sf provar automation config validate
167
+ ```
168
+
109
169
  ## `sf provar automation config get`
110
170
 
111
171
  Retrieve a value from the loaded properties file.
@@ -263,6 +323,46 @@ EXAMPLES
263
323
  $ sf provar manager connect -o ProvarManager
264
324
  ```
265
325
 
326
+ ## `sf provar manager display`
327
+
328
+ Display information about the connected Provar Manager org.
329
+
330
+ ```
331
+ USAGE
332
+ $ sf provar manager display [--json]
333
+
334
+ GLOBAL FLAGS
335
+ --json Format output as json.
336
+
337
+ DESCRIPTION
338
+ Display information about the connected Provar Manager org.
339
+
340
+ EXAMPLES
341
+ Display information about the connected Provar Manager org:
342
+
343
+ $ sf provar manager display
344
+ ```
345
+
346
+ ## `sf provar manager open`
347
+
348
+ Open Provar Manager in a browser.
349
+
350
+ ```
351
+ USAGE
352
+ $ sf provar manager open [--json]
353
+
354
+ GLOBAL FLAGS
355
+ --json Format output as json.
356
+
357
+ DESCRIPTION
358
+ Open Provar Manager in a browser.
359
+
360
+ EXAMPLES
361
+ Open Provar Manager in a browser:
362
+
363
+ $ sf provar manager open
364
+ ```
365
+
266
366
  ## `sf provar manager testcase retrieve`
267
367
 
268
368
  Retrieve test cases related to the provided user stories (issues) or metadata components, for a given test project.
@@ -304,3 +404,66 @@ EXAMPLES
304
404
  base/main/default/objects/Sprint__c/fields/Sprint_Goal__c.field-meta.xml
305
405
 
306
406
  ```
407
+
408
+ ## `sf provar manager test run`
409
+
410
+ Run tests via Provar Manager.
411
+
412
+ ```
413
+ USAGE
414
+ $ sf provar manager test run -f <value> [--json] [-y] [-w <value>] [-p <value>] [-o <value>] [-r <value>]
415
+
416
+ FLAGS
417
+ -f, --configuration-file=<value> (required) Path to the configuration file.
418
+ -o, --output=<value> Output to a specific file instead of stdout.
419
+ -p, --polling-interval=<value> [default: 60] Sets the polling interval in seconds. Default is 60 seconds.
420
+ -r, --result-format=<value> [default: human] Format of the test results.
421
+ -w, --wait=<value> Sets the polling timeout in minutes.
422
+ -y, --synchronous Runs command synchronously; if not specified, the command is run asynchronously.
423
+
424
+ GLOBAL FLAGS
425
+ --json Format output as json.
426
+
427
+ DESCRIPTION
428
+ Run tests via Provar Manager.
429
+
430
+ EXAMPLES
431
+ Run tests as per the config/run-grid-test.json configuration file, wait 10 minutes, poll every 30 seconds, and store the results as JSON in the results.json file:
432
+
433
+ $ sf provar manager test run -f config/run-grid-tests.json -w 10 -p 30 -r json -o results.json
434
+
435
+ Run tests as per the config/run-grid-test.json configuration file, wait 20 minutes, and store the results as JUnit in the junit-results.xml file:
436
+
437
+ $ sf provar manager test run -f config/run-grid-tests.json -w 20 -r junit -o junit-results.xml
438
+
439
+ ```
440
+
441
+ ## `sf provar manager test run report`
442
+
443
+ Check or poll for the status of a test run operation.
444
+
445
+ ```
446
+ USAGE
447
+ $ sf provar manager test run report -i <value> [--json] [-r <value>] [-o <value>]
448
+
449
+ FLAGS
450
+ -i, --test-run=<value> (required) Test run ID.
451
+ -o, --output=<value> Output to a specific file instead of stdout.
452
+ -r, --result-format=<value> [default: human] Format of the test results.
453
+
454
+ GLOBAL FLAGS
455
+ --json Format output as json.
456
+
457
+ DESCRIPTION
458
+ Check or poll for the status of a test run operation.
459
+
460
+ EXAMPLES
461
+ Retrieve results for test run 45f70417-df21-4917-a667-abc2ee46dc63 and store the results as JSON in the results.json file
462
+
463
+ $ sf provar manager test run report -i 45f70417-df21-4917-a667-abc2ee46dc63 -r json -o results.json
464
+
465
+ Retrieve results for test run 45f70417-df21-4917-a667-abc2ee46dc63 and store the results as JUnit in the junit-results.xml file:
466
+
467
+ $ sf provar manager test run report -i 45f70417-df21-4917-a667-abc2ee46dc63 -r junit -o junit-results.xml
468
+
469
+ ```
@@ -0,0 +1,10 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { SfProvarCommandResult } from '@provartesting/provardx-plugins-utils';
3
+ export default class SfProvarConfigGet extends SfCommand<SfProvarCommandResult> {
4
+ static readonly summary: string;
5
+ static readonly description: string;
6
+ static readonly examples: string[];
7
+ static readonly strict = false;
8
+ private errorHandler;
9
+ run(): Promise<SfProvarCommandResult>;
10
+ }
@@ -0,0 +1,69 @@
1
+ /*
2
+ * Copyright (c) 2024 Provar Limited.
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.md file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ import * as fileSystem from 'node:fs';
8
+ import { SfCommand } from '@salesforce/sf-plugins-core';
9
+ import { errorMessages, populateResult, ErrorHandler, ProvarConfig, checkNestedProperty, getNestedProperty, Messages } from '@provartesting/provardx-plugins-utils';
10
+ /**
11
+ * Gets the value for specified propertykey under arguments from provardx-properties.json
12
+ * laoded under config.json
13
+ *
14
+ */
15
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
16
+ const messages = Messages.loadMessages('@provartesting/provardx-cli', 'sf.provar.config.get');
17
+ export default class SfProvarConfigGet extends SfCommand {
18
+ static summary = messages.getMessage('summary');
19
+ static description = messages.getMessage('description');
20
+ static examples = messages.getMessages('examples');
21
+ static strict = false;
22
+ errorHandler = new ErrorHandler();
23
+ async run() {
24
+ const { argv, flags } = await this.parse(SfProvarConfigGet);
25
+ const config = await ProvarConfig.loadConfig(this.errorHandler);
26
+ const propertiesFilePath = config.get('PROVARDX_PROPERTIES_FILE_PATH')?.toString();
27
+ let attributeValue = null;
28
+ if (propertiesFilePath === undefined || !fileSystem.existsSync(propertiesFilePath)) {
29
+ this.errorHandler.addErrorsToList('MISSING_FILE', errorMessages.MISSING_FILE_ERROR);
30
+ return populateResult(flags, this.errorHandler, messages, this.log.bind(this));
31
+ }
32
+ try {
33
+ /* eslint-disable */
34
+ if (!argv.length) {
35
+ this.errorHandler.addErrorsToList('MISSING_PROPERTY', errorMessages.MISSING_PROPERTY_GET);
36
+ return populateResult(flags, this.errorHandler, messages, this.log.bind(this));
37
+ }
38
+ const data = fileSystem.readFileSync(propertiesFilePath, { encoding: 'utf8' });
39
+ const propertyFileContent = JSON.parse(data);
40
+ const propertyName = argv[0];
41
+ if (propertyName.includes('.')) {
42
+ if (!checkNestedProperty(propertyFileContent, propertyName)) {
43
+ this.errorHandler.addErrorsToList('UNKNOWN_PROPERTY', errorMessages.UNKNOWN_PROPERTY);
44
+ }
45
+ else {
46
+ attributeValue = getNestedProperty(propertyFileContent, propertyName);
47
+ }
48
+ }
49
+ else {
50
+ if (!propertyFileContent.hasOwnProperty(propertyName)) {
51
+ this.errorHandler.addErrorsToList('UNKNOWN_PROPERTY', errorMessages.UNKNOWN_PROPERTY);
52
+ }
53
+ else {
54
+ attributeValue = propertyFileContent[propertyName];
55
+ }
56
+ }
57
+ }
58
+ catch (err) {
59
+ if (err.name === 'SyntaxError') {
60
+ this.errorHandler.addErrorsToList('MALFORMED_FILE', errorMessages.MALFORMED_FILE_ERROR);
61
+ }
62
+ else {
63
+ throw err;
64
+ }
65
+ }
66
+ return populateResult(flags, this.errorHandler, messages, this.log.bind(this), attributeValue);
67
+ }
68
+ }
69
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../../src/commands/provar/automation/config/get.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { SfProvarCommandResult } from '@provartesting/provardx-plugins-utils';
3
+ export default class SfProvarConfigSet extends SfCommand<SfProvarCommandResult> {
4
+ static readonly summary: string;
5
+ static readonly description: string;
6
+ static readonly examples: string[];
7
+ static readonly strict = false;
8
+ private errorHandler;
9
+ run(): Promise<SfProvarCommandResult>;
10
+ }
@@ -0,0 +1,80 @@
1
+ /*
2
+ * Copyright (c) 2024 Provar Limited.
3
+ * All rights reserved.
4
+ * Licensed under the BSD 3-Clause license.
5
+ * For full license text, see LICENSE.md file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+ import * as fileSystem from 'node:fs';
8
+ import { SfCommand, parseVarArgs } from '@salesforce/sf-plugins-core';
9
+ import { populateResult, ErrorHandler, Messages, ProvarConfig, parseJSONString, setNestedProperty, errorMessages } from '@provartesting/provardx-plugins-utils';
10
+ /**
11
+ * Sets the specified property key and value inside provardx-properties.json
12
+ * loaded under config file
13
+ *
14
+ */
15
+ Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
16
+ const messages = Messages.loadMessages('@provartesting/provardx-cli', 'sf.provar.config.set');
17
+ export default class SfProvarConfigSet extends SfCommand {
18
+ static summary = messages.getMessage('summary');
19
+ static description = messages.getMessage('description');
20
+ static examples = messages.getMessages('examples');
21
+ static strict = false;
22
+ errorHandler = new ErrorHandler();
23
+ async run() {
24
+ const { argv, flags } = await this.parse(SfProvarConfigSet);
25
+ // eslint-disable-next-line
26
+ const config = await ProvarConfig.loadConfig(this.errorHandler);
27
+ const propertiesFilePath = config.get('PROVARDX_PROPERTIES_FILE_PATH')?.toString();
28
+ if (propertiesFilePath === undefined || !fileSystem.existsSync(propertiesFilePath)) {
29
+ this.errorHandler.addErrorsToList('MISSING_FILE', errorMessages.MISSING_FILE_ERROR);
30
+ return populateResult(flags, this.errorHandler, messages, this.log.bind(this));
31
+ }
32
+ try {
33
+ /* eslint-disable */
34
+ const parsed = parseVarArgs({}, argv);
35
+ if (Object.keys(parsed).length === 0) {
36
+ this.errorHandler.addErrorsToList('MISSING_PROPERTY', errorMessages.MISSING_PROPERTY);
37
+ return populateResult(flags, this.errorHandler, messages, this.log.bind(this));
38
+ }
39
+ const data = fileSystem.readFileSync(propertiesFilePath, { encoding: 'utf8' });
40
+ const propertyFileContent = JSON.parse(data);
41
+ for (let [propertyName, propertyValue] of Object.entries(parsed)) {
42
+ if (!propertyValue) {
43
+ this.errorHandler.addErrorsToList('MISSING_VALUE', errorMessages.MISSING_VALUE);
44
+ }
45
+ if (propertyName.length < 1) {
46
+ this.errorHandler.addErrorsToList('MISSING_PROPERTY', errorMessages.MISSING_PROPERTY);
47
+ }
48
+ try {
49
+ propertyValue = parseJSONString(propertyValue);
50
+ }
51
+ catch (err) {
52
+ this.errorHandler.addErrorsToList('INVALID_VALUE', errorMessages.INVALID_VALUE);
53
+ return populateResult(flags, this.errorHandler, messages, this.log.bind(this));
54
+ }
55
+ if (propertyName.includes('.')) {
56
+ setNestedProperty(propertyFileContent, propertyName, propertyValue);
57
+ }
58
+ else {
59
+ propertyFileContent[propertyName] = propertyValue;
60
+ }
61
+ }
62
+ if (this.errorHandler.getErrors().length == 0) {
63
+ fileSystem.writeFileSync(propertiesFilePath, JSON.stringify(propertyFileContent, null, 3));
64
+ }
65
+ }
66
+ catch (err) {
67
+ if (err.name === 'InvalidArgumentFormatError') {
68
+ this.errorHandler.addErrorsToList('INVALID_ARGUMENT', errorMessages.INVALID_ARGUMENT);
69
+ }
70
+ else if (err.name === 'SyntaxError') {
71
+ this.errorHandler.addErrorsToList('MALFORMED_FILE', errorMessages.MALFORMED_FILE_ERROR);
72
+ }
73
+ else {
74
+ throw err;
75
+ }
76
+ }
77
+ return populateResult(flags, this.errorHandler, messages, this.log.bind(this));
78
+ }
79
+ }
80
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../../src/commands/provar/automation/config/set.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,16 @@
1
1
  # summary
2
2
 
3
- Retrieves a value from the loaded properties file.
3
+ Retrieve a value from the specified JSON file.
4
4
 
5
5
  # description
6
6
 
7
- Retrieves a value from the loaded properties file.
7
+ Retrieve a value from the specified JSON file.
8
8
 
9
9
  # examples
10
10
 
11
- - Retrieves a value from the loaded properties file
11
+ - Get the testEnvironment value within the environment property from the config.json file:
12
12
 
13
- <%= config.bin %> <%= command.id %> 'key'
13
+ $ sf provar config get environment.testEnvironment -f config.json
14
14
 
15
15
  # error.MultipleFailure
16
16
 
@@ -1,16 +1,24 @@
1
1
  # summary
2
2
 
3
- Sets a property in the loaded properties file.
3
+ Set one or more properties in the specified JSON file.
4
4
 
5
5
  # description
6
6
 
7
- Sets a property in the loaded properties file.
7
+ Set one or more properties in the specified JSON file.
8
8
 
9
9
  # examples
10
10
 
11
- - Sets a property in the loaded properties file with resp. values
11
+ - Set the environment to “SIT” in the config.json properties file:
12
12
 
13
- <%= config.bin %> <%= command.id %> 'key'='value'
13
+ $ sf provar config set environment.testEnvironment="SIT" -f config.json
14
+
15
+ - Set the testEnvironment to “SIT” and the webBrowser to “Chrome”, within the environment property.
16
+
17
+ $ sf provar config set environment.testEnvironment="SIT" environment.webBrowser="Chrome" -f config.json
18
+
19
+ - Set testCases to a list of test case paths in the config.json properties file.
20
+
21
+ $ sf provar config set testCases='["tests/myTestCase.testcase","tests/testSuite1/myTestCase1.testCase"]' -f config.json
14
22
 
15
23
  # error.MultipleFailure
16
24
 
@@ -0,0 +1,17 @@
1
+ # summary
2
+
3
+ Retrieves a value from the loaded properties file.
4
+
5
+ # description
6
+
7
+ Retrieves a value from the loaded properties file.
8
+
9
+ # examples
10
+
11
+ - Retrieves a value from the loaded properties file
12
+
13
+ <%= config.bin %> <%= command.id %> 'key'
14
+
15
+ # error.MultipleFailure
16
+
17
+ %s
@@ -0,0 +1,17 @@
1
+ # summary
2
+
3
+ Sets a property in the loaded properties file.
4
+
5
+ # description
6
+
7
+ Sets a property in the loaded properties file.
8
+
9
+ # examples
10
+
11
+ - Sets a property in the loaded properties file with resp. values
12
+
13
+ <%= config.bin %> <%= command.id %> 'key'='value'
14
+
15
+ # error.MultipleFailure
16
+
17
+ %s
@@ -3,9 +3,9 @@
3
3
  "provar:config:get": {
4
4
  "aliases": [],
5
5
  "args": {},
6
- "description": "Retrieves a value from the loaded properties file.",
6
+ "description": "Retrieve a value from the specified JSON file.",
7
7
  "examples": [
8
- "Retrieves a value from the loaded properties file\n<%= config.bin %> <%= command.id %> 'key'"
8
+ "Get the testEnvironment value within the environment property from the config.json file:\n$ sf provar config get environment.testEnvironment -f config.json"
9
9
  ],
10
10
  "flags": {
11
11
  "json": {
@@ -32,7 +32,7 @@
32
32
  "pluginName": "@provartesting/provardx-cli",
33
33
  "pluginType": "core",
34
34
  "strict": false,
35
- "summary": "Retrieves a value from the loaded properties file.",
35
+ "summary": "Retrieve a value from the specified JSON file.",
36
36
  "enableJsonFlag": true,
37
37
  "isESM": true,
38
38
  "relativePath": [
@@ -55,9 +55,11 @@
55
55
  "provar:config:set": {
56
56
  "aliases": [],
57
57
  "args": {},
58
- "description": "Sets a property in the loaded properties file.",
58
+ "description": "Set one or more properties in the specified JSON file.",
59
59
  "examples": [
60
- "Sets a property in the loaded properties file with resp. values\n<%= config.bin %> <%= command.id %> 'key'='value'"
60
+ "Set the environment to “SIT” in the config.json properties file:\n$ sf provar config set environment.testEnvironment=\"SIT\" -f config.json",
61
+ "Set the testEnvironment to “SIT” and the webBrowser to “Chrome”, within the environment property.\n$ sf provar config set environment.testEnvironment=\"SIT\" environment.webBrowser=\"Chrome\" -f config.json",
62
+ "Set testCases to a list of test case paths in the config.json properties file.\n$ sf provar config set testCases='[\"tests/myTestCase.testcase\",\"tests/testSuite1/myTestCase1.testCase\"]' -f config.json"
61
63
  ],
62
64
  "flags": {
63
65
  "json": {
@@ -84,7 +86,7 @@
84
86
  "pluginName": "@provartesting/provardx-cli",
85
87
  "pluginType": "core",
86
88
  "strict": false,
87
- "summary": "Sets a property in the loaded properties file.",
89
+ "summary": "Set one or more properties in the specified JSON file.",
88
90
  "enableJsonFlag": true,
89
91
  "isESM": true,
90
92
  "relativePath": [
@@ -182,6 +184,68 @@
182
184
  "generate:config:automation:provar"
183
185
  ]
184
186
  },
187
+ "provar:automation:config:get": {
188
+ "aliases": [],
189
+ "args": {},
190
+ "description": "Retrieves a value from the loaded properties file.",
191
+ "examples": [
192
+ "Retrieves a value from the loaded properties file\n<%= config.bin %> <%= command.id %> 'key'"
193
+ ],
194
+ "flags": {
195
+ "json": {
196
+ "description": "Format output as json.",
197
+ "helpGroup": "GLOBAL",
198
+ "name": "json",
199
+ "allowNo": false,
200
+ "type": "boolean"
201
+ }
202
+ },
203
+ "hasDynamicHelp": false,
204
+ "hiddenAliases": [],
205
+ "id": "provar:automation:config:get",
206
+ "pluginAlias": "@provartesting/provardx-cli",
207
+ "pluginName": "@provartesting/provardx-cli",
208
+ "pluginType": "core",
209
+ "strict": false,
210
+ "summary": "Retrieves a value from the loaded properties file.",
211
+ "enableJsonFlag": true,
212
+ "isESM": true,
213
+ "relativePath": [
214
+ "lib",
215
+ "commands",
216
+ "provar",
217
+ "automation",
218
+ "config",
219
+ "get.js"
220
+ ],
221
+ "aliasPermutations": [],
222
+ "permutations": [
223
+ "provar:automation:config:get",
224
+ "automation:provar:config:get",
225
+ "automation:config:provar:get",
226
+ "automation:config:get:provar",
227
+ "provar:config:automation:get",
228
+ "config:provar:automation:get",
229
+ "config:automation:provar:get",
230
+ "config:automation:get:provar",
231
+ "provar:config:get:automation",
232
+ "config:provar:get:automation",
233
+ "config:get:provar:automation",
234
+ "config:get:automation:provar",
235
+ "provar:automation:get:config",
236
+ "automation:provar:get:config",
237
+ "automation:get:provar:config",
238
+ "automation:get:config:provar",
239
+ "provar:get:automation:config",
240
+ "get:provar:automation:config",
241
+ "get:automation:provar:config",
242
+ "get:automation:config:provar",
243
+ "provar:get:config:automation",
244
+ "get:provar:config:automation",
245
+ "get:config:provar:automation",
246
+ "get:config:automation:provar"
247
+ ]
248
+ },
185
249
  "provar:automation:config:load": {
186
250
  "aliases": [],
187
251
  "args": {},
@@ -253,6 +317,68 @@
253
317
  "load:config:automation:provar"
254
318
  ]
255
319
  },
320
+ "provar:automation:config:set": {
321
+ "aliases": [],
322
+ "args": {},
323
+ "description": "Sets a property in the loaded properties file.",
324
+ "examples": [
325
+ "Sets a property in the loaded properties file with resp. values\n<%= config.bin %> <%= command.id %> 'key'='value'"
326
+ ],
327
+ "flags": {
328
+ "json": {
329
+ "description": "Format output as json.",
330
+ "helpGroup": "GLOBAL",
331
+ "name": "json",
332
+ "allowNo": false,
333
+ "type": "boolean"
334
+ }
335
+ },
336
+ "hasDynamicHelp": false,
337
+ "hiddenAliases": [],
338
+ "id": "provar:automation:config:set",
339
+ "pluginAlias": "@provartesting/provardx-cli",
340
+ "pluginName": "@provartesting/provardx-cli",
341
+ "pluginType": "core",
342
+ "strict": false,
343
+ "summary": "Sets a property in the loaded properties file.",
344
+ "enableJsonFlag": true,
345
+ "isESM": true,
346
+ "relativePath": [
347
+ "lib",
348
+ "commands",
349
+ "provar",
350
+ "automation",
351
+ "config",
352
+ "set.js"
353
+ ],
354
+ "aliasPermutations": [],
355
+ "permutations": [
356
+ "provar:automation:config:set",
357
+ "automation:provar:config:set",
358
+ "automation:config:provar:set",
359
+ "automation:config:set:provar",
360
+ "provar:config:automation:set",
361
+ "config:provar:automation:set",
362
+ "config:automation:provar:set",
363
+ "config:automation:set:provar",
364
+ "provar:config:set:automation",
365
+ "config:provar:set:automation",
366
+ "config:set:provar:automation",
367
+ "config:set:automation:provar",
368
+ "provar:automation:set:config",
369
+ "automation:provar:set:config",
370
+ "automation:set:provar:config",
371
+ "automation:set:config:provar",
372
+ "provar:set:automation:config",
373
+ "set:provar:automation:config",
374
+ "set:automation:provar:config",
375
+ "set:automation:config:provar",
376
+ "provar:set:config:automation",
377
+ "set:provar:config:automation",
378
+ "set:config:provar:automation",
379
+ "set:config:automation:provar"
380
+ ]
381
+ },
256
382
  "provar:automation:config:validate": {
257
383
  "aliases": [],
258
384
  "args": {},
@@ -316,5 +442,5 @@
316
442
  ]
317
443
  }
318
444
  },
319
- "version": "1.4.0"
445
+ "version": "1.4.2"
320
446
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@provartesting/provardx-cli",
3
3
  "description": "A plugin for the Salesforce CLI to orchestrate testing activities and report quality metrics to Provar Manager",
4
- "version": "1.4.0",
4
+ "version": "1.4.2",
5
5
  "license": "BSD-3-Clause",
6
6
  "plugins": [
7
7
  "@provartesting/provardx-plugins-automation",
@@ -20,7 +20,7 @@
20
20
  "node-stream-zip": "^1.15.0",
21
21
  "@provartesting/provardx-plugins-utils": "1.2.0",
22
22
  "@provartesting/provardx-plugins-automation": "1.1.0",
23
- "@provartesting/provardx-plugins-manager": "1.2.0",
23
+ "@provartesting/provardx-plugins-manager": "1.2.1",
24
24
  "sync-request": "^6.1.0",
25
25
  "xml-js": "^1.6.11"
26
26
  },