apextestlist 1.10.2 → 1.11.0
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/CHANGELOG.md +7 -0
- package/README.md +27 -1
- package/lib/commands/apextests/list.d.ts +1 -0
- package/lib/commands/apextests/list.js +37 -27
- package/lib/commands/apextests/list.js.map +1 -1
- package/lib/helpers/readers.js +23 -25
- package/lib/helpers/readers.js.map +1 -1
- package/lib/helpers/types.d.ts +1 -0
- package/lib/helpers/validateTests.js +1 -1
- package/lib/helpers/validateTests.js.map +1 -1
- package/messages/apextests.list.md +8 -0
- package/oclif.manifest.json +10 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,13 @@
|
|
|
5
5
|
|
|
6
6
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## [1.11.0](https://github.com/renatoliveira/apex-test-list/compare/v1.10.2...v1.11.0) (2025-04-07)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* provide warnings for missing annotations ([#186](https://github.com/renatoliveira/apex-test-list/issues/186)) ([6df6cb9](https://github.com/renatoliveira/apex-test-list/commit/6df6cb9e9a9ea12db87339436579b95746364a25))
|
|
14
|
+
|
|
8
15
|
## [1.10.2](https://github.com/renatoliveira/apex-test-list/compare/v1.10.1...v1.10.2) (2025-04-06)
|
|
9
16
|
|
|
10
17
|
|
package/README.md
CHANGED
|
@@ -15,6 +15,7 @@ A plugin that generates a list of tests that your automated process should run,
|
|
|
15
15
|
- [3. `@isTest` (Apex Annotation)](#3-istest-apex-annotation)
|
|
16
16
|
- [Running the Tool](#running-the-tool)
|
|
17
17
|
- [Handling Missing Tests](#handling-missing-tests)
|
|
18
|
+
- [Handling Missing Annotations](#handling-missing-annotations)
|
|
18
19
|
- [Command Reference](#command-reference)
|
|
19
20
|
- [Issues](#issues)
|
|
20
21
|
- [License](#license)
|
|
@@ -95,6 +96,12 @@ The final deployment command would look like:
|
|
|
95
96
|
sf project deploy start --tests SampleTest SuperSampleTest Sample2Test SuperSample2Test SampleTriggerTest
|
|
96
97
|
```
|
|
97
98
|
|
|
99
|
+
If no annotations are found, the command output will be empty and will present this warning:
|
|
100
|
+
|
|
101
|
+
```sh
|
|
102
|
+
No test methods found
|
|
103
|
+
```
|
|
104
|
+
|
|
98
105
|
### Handling Missing Tests
|
|
99
106
|
|
|
100
107
|
By default, this tool does **not** verify if the tests specified in `@Tests:` or `@TestSuites:` exist in the project. To enable warnings for missing tests, use:
|
|
@@ -105,11 +112,25 @@ sf apextests list --ignore-missing-tests
|
|
|
105
112
|
|
|
106
113
|
This will print warnings for missing tests and exclude them from the output.
|
|
107
114
|
|
|
115
|
+
### Handling Missing Annotations
|
|
116
|
+
|
|
117
|
+
By default, the tool will print a warning for each file scanned that is missing any annotation.
|
|
118
|
+
|
|
119
|
+
```sh
|
|
120
|
+
File "Sample.cls" does not contain @tests, @testsuites, or @istest annotations
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
To remove these warnings from the terminal, use:
|
|
124
|
+
|
|
125
|
+
```sh
|
|
126
|
+
sf apextests list --no-warnings
|
|
127
|
+
```
|
|
128
|
+
|
|
108
129
|
## Command Reference
|
|
109
130
|
|
|
110
131
|
```
|
|
111
132
|
USAGE
|
|
112
|
-
$ sf apextests list -f <value> -x <value> -s -d <value> [--json]
|
|
133
|
+
$ sf apextests list -f <value> -x <value> -s -n -d <value> [--json]
|
|
113
134
|
|
|
114
135
|
FLAGS
|
|
115
136
|
-f, --format=<value> Output format. Available options:
|
|
@@ -117,6 +138,7 @@ FLAGS
|
|
|
117
138
|
- `csv`: Comma-separated values
|
|
118
139
|
-x, --manifest=<value> Manifest XML file (package.xml) to filter test annotations.
|
|
119
140
|
-s, --ignore-missing-tests [default: false] Ignore test methods that are not found in any local package directories.
|
|
141
|
+
-n, --no-warnings [default: false] Do not print warnings for each file missing annotations.
|
|
120
142
|
-d, --ignore-package-directory Ignore a package directory when looking for test annotations.
|
|
121
143
|
Should match how they are declared in "sfdx-project.json".
|
|
122
144
|
Can be declared multiple times.
|
|
@@ -144,6 +166,10 @@ EXAMPLES
|
|
|
144
166
|
Exclude annotations found in the "force-app" directory:
|
|
145
167
|
|
|
146
168
|
$ sf apextests list -d "force-app"
|
|
169
|
+
|
|
170
|
+
List test annotations without printing warnings for each file missing annotations:
|
|
171
|
+
|
|
172
|
+
$ sf apextests list -n
|
|
147
173
|
```
|
|
148
174
|
|
|
149
175
|
## Issues
|
|
@@ -12,6 +12,7 @@ export default class ApextestsList extends SfCommand<ApextestsListResult> {
|
|
|
12
12
|
manifest: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
13
|
'ignore-missing-tests': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
14
|
'ignore-package-directory': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
'no-warnings': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
16
|
};
|
|
16
17
|
run(): Promise<ApextestsListResult>;
|
|
17
18
|
}
|
|
@@ -41,6 +41,13 @@ export default class ApextestsList extends SfCommand {
|
|
|
41
41
|
required: false,
|
|
42
42
|
multiple: true,
|
|
43
43
|
}),
|
|
44
|
+
'no-warnings': Flags.boolean({
|
|
45
|
+
summary: messages.getMessage('flags.no-warnings.summary'),
|
|
46
|
+
description: messages.getMessage('flags.no-warnings.description'),
|
|
47
|
+
char: 'n',
|
|
48
|
+
required: false,
|
|
49
|
+
default: false,
|
|
50
|
+
}),
|
|
44
51
|
};
|
|
45
52
|
async run() {
|
|
46
53
|
const { flags } = await this.parse(ApextestsList);
|
|
@@ -48,57 +55,60 @@ export default class ApextestsList extends SfCommand {
|
|
|
48
55
|
const manifest = flags.manifest ?? undefined;
|
|
49
56
|
const ignoreMissingTests = flags['ignore-missing-tests'] ?? false;
|
|
50
57
|
const ignoreDirs = flags['ignore-package-directory'] ?? [];
|
|
51
|
-
|
|
58
|
+
const noWarnings = flags['no-warnings'];
|
|
52
59
|
let testClassesNames = null;
|
|
53
60
|
const testSuitesNames = [];
|
|
61
|
+
const allTestClasses = [];
|
|
62
|
+
const warnings = [];
|
|
54
63
|
// Get package directories full paths
|
|
55
64
|
const packageDirectories = await getPackageDirectories(ignoreDirs);
|
|
56
65
|
if (manifest) {
|
|
57
|
-
const
|
|
58
|
-
testClassesNames =
|
|
66
|
+
const manifestMetadata = await extractTypeNamesFromManifestFile(manifest);
|
|
67
|
+
testClassesNames = manifestMetadata.filter((name) => !name.endsWith('testSuite-meta.xml'));
|
|
59
68
|
}
|
|
60
|
-
const allTestClasses = [];
|
|
61
69
|
// Loop through each directory and search for test classes
|
|
62
70
|
for (const directory of packageDirectories) {
|
|
63
71
|
const searchResult = await searchDirectoryForTestClasses(directory, testClassesNames);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
allTestClasses.push(...searchResult.classes);
|
|
73
|
+
testSuitesNames.push(...searchResult.testSuites);
|
|
74
|
+
if (searchResult.warnings?.length) {
|
|
75
|
+
warnings.push(...searchResult.warnings);
|
|
76
|
+
}
|
|
68
77
|
}
|
|
69
78
|
if (testSuitesNames.length > 0) {
|
|
70
|
-
// read the testSuite directory again to get the classes listed on them
|
|
71
79
|
for (const directory of packageDirectories.filter((dir) => dir.includes('testSuites'))) {
|
|
72
80
|
const testNames = await searchDirectoryForTestNamesInTestSuites(directory, packageDirectories);
|
|
73
81
|
allTestClasses.push(...testNames);
|
|
74
82
|
}
|
|
75
83
|
}
|
|
76
|
-
// Ensure all test methods are unique by using a Set
|
|
77
84
|
let finalTestMethods = Array.from(new Set(allTestClasses.map((test) => test.trim())));
|
|
78
85
|
// If ignore-missing-tests is true, validate the test methods
|
|
79
86
|
if (ignoreMissingTests) {
|
|
80
|
-
const { validatedTests, warnings } = await validateTests(finalTestMethods, packageDirectories);
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
else {
|
|
85
|
-
throw new Error('No test methods declared in your annotations were found in your package directories.');
|
|
87
|
+
const { validatedTests, warnings: validationWarnings } = await validateTests(finalTestMethods, packageDirectories);
|
|
88
|
+
finalTestMethods = validatedTests;
|
|
89
|
+
if (validationWarnings.length > 0) {
|
|
90
|
+
warnings.push(...validationWarnings);
|
|
86
91
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
warnings.forEach((warning) => {
|
|
90
|
-
this.warn(warning);
|
|
91
|
-
});
|
|
92
|
+
if (validatedTests.length === 0) {
|
|
93
|
+
warnings.push('No test methods declared in your annotations were found in your package directories');
|
|
92
94
|
}
|
|
93
95
|
}
|
|
94
|
-
|
|
95
|
-
if (
|
|
96
|
-
|
|
96
|
+
// Print all collected warnings
|
|
97
|
+
if (!noWarnings && warnings.length > 0) {
|
|
98
|
+
warnings.forEach((warning) => {
|
|
99
|
+
this.warn(warning);
|
|
100
|
+
});
|
|
97
101
|
}
|
|
98
|
-
|
|
99
|
-
|
|
102
|
+
finalTestMethods.sort((a, b) => a.localeCompare(b));
|
|
103
|
+
if (finalTestMethods.length === 0) {
|
|
104
|
+
this.warn('No test methods found');
|
|
105
|
+
return {
|
|
106
|
+
tests: [],
|
|
107
|
+
command: '',
|
|
108
|
+
};
|
|
100
109
|
}
|
|
101
|
-
|
|
110
|
+
const result = await formatList(format, finalTestMethods);
|
|
111
|
+
this.log(result.command);
|
|
102
112
|
return result;
|
|
103
113
|
}
|
|
104
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/apextests/list.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,YAAY,CAAC;AACb,qCAAqC;AAErC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,gCAAgC,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,uCAAuC,EAAE,MAAM,0BAA0B,CAAC;AAGlH,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;AAQzE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,SAA8B;IAChE,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5D,MAAM,CAAU,KAAK,GAAG;QAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;YACpD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,0BAA0B,CAAC;YAC5D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;YACtD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,4BAA4B,CAAC;YAC9D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC;YACpC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oCAAoC,CAAC;YAClE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wCAAwC,CAAC;YAC1E,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,KAAK;SACf,CAAC;QACF,0BAA0B,EAAE,KAAK,CAAC,SAAS,CAAC;YAC1C,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,wCAAwC,CAAC;YACtE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,4CAA4C,CAAC;YAC9E,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC7C,MAAM,kBAAkB,GAAG,KAAK,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC;QAClE,MAAM,UAAU,GAAG,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/apextests/list.ts"],"names":[],"mappings":"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"}
|
package/lib/helpers/readers.js
CHANGED
|
@@ -92,6 +92,7 @@ export function matchWildcard(wildcard, test) {
|
|
|
92
92
|
export async function searchDirectoryForTestClasses(directory, names) {
|
|
93
93
|
const testClassesNames = new Set();
|
|
94
94
|
const testSuitesNames = new Set();
|
|
95
|
+
const warnings = [];
|
|
95
96
|
let readDir;
|
|
96
97
|
try {
|
|
97
98
|
readDir = readdirSync(directory, { recursive: true });
|
|
@@ -113,48 +114,45 @@ export async function searchDirectoryForTestClasses(directory, names) {
|
|
|
113
114
|
return names.includes(formattedName);
|
|
114
115
|
}
|
|
115
116
|
});
|
|
116
|
-
// Function that handles the parsing of test classes and helps to build the
|
|
117
|
-
// list of test classes
|
|
118
117
|
const testClassNameHandler = (fileName) => {
|
|
119
118
|
const path = `${directory}/${fileName}`;
|
|
120
119
|
const data = readFileSync(path, 'utf-8');
|
|
121
|
-
const
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
120
|
+
const testNameMatches = Array.from(data.matchAll(TEST_NAME_REGEX));
|
|
121
|
+
const testSuiteMatches = Array.from(data.matchAll(TEST_SUITE_NAME_REGEX));
|
|
122
|
+
const testClassAnnotationMatches = data.match(TEST_CLASS_ANNOTATION_REGEX);
|
|
123
|
+
let hasAnnotation = false;
|
|
124
|
+
if (testNameMatches.length > 0) {
|
|
125
|
+
hasAnnotation = true;
|
|
126
|
+
for (const match of testNameMatches) {
|
|
127
|
+
parseTestsNames(match).forEach((testMethod) => testClassesNames.add(testMethod));
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
if (testSuiteMatches.length > 0) {
|
|
131
|
+
hasAnnotation = true;
|
|
132
|
+
for (const match of testSuiteMatches) {
|
|
133
|
+
parseTestSuitesNames(match).forEach((testMethod) => testSuitesNames.add(testMethod));
|
|
127
134
|
}
|
|
128
135
|
}
|
|
129
|
-
// check if the class is itself a test class, if it is, add it to the list
|
|
130
|
-
const testClassAnnotationMatches = data.match(TEST_CLASS_ANNOTATION_REGEX);
|
|
131
136
|
if (testClassAnnotationMatches && testClassAnnotationMatches.length > 0) {
|
|
137
|
+
hasAnnotation = true;
|
|
132
138
|
testClassesNames.add(fileName.split('.').shift());
|
|
133
139
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
const path = `${directory}/${fileName}`;
|
|
137
|
-
const data = readFileSync(path, 'utf-8');
|
|
138
|
-
const matches = data.matchAll(TEST_SUITE_NAME_REGEX);
|
|
139
|
-
for (const match of matches) {
|
|
140
|
-
parseTestSuitesNames(match).forEach((testMethod) => {
|
|
141
|
-
testSuitesNames.add(testMethod);
|
|
142
|
-
});
|
|
140
|
+
if (!hasAnnotation) {
|
|
141
|
+
warnings.push(`File "${fileName}" does not contain @tests, @testsuites, or @istest annotations`);
|
|
143
142
|
}
|
|
144
143
|
};
|
|
145
|
-
// initialize the processor with the names of files we want to process
|
|
146
144
|
const testClassNameProcessor = queue((f, cb) => {
|
|
147
145
|
testClassNameHandler(f);
|
|
148
|
-
testSuiteNameHandler(f);
|
|
149
146
|
cb();
|
|
150
147
|
}, getConcurrencyThreshold());
|
|
151
|
-
// initialize the processor with the names of files we want to process
|
|
152
148
|
await testClassNameProcessor.push(apexFiles);
|
|
153
|
-
// make sure no dangling process is left before continuing
|
|
154
149
|
if (testClassNameProcessor.length() > 0) {
|
|
155
150
|
await testClassNameProcessor.drain();
|
|
156
151
|
}
|
|
157
|
-
|
|
158
|
-
|
|
152
|
+
return {
|
|
153
|
+
classes: Array.from(testClassesNames),
|
|
154
|
+
testSuites: Array.from(testSuitesNames),
|
|
155
|
+
warnings,
|
|
156
|
+
};
|
|
159
157
|
}
|
|
160
158
|
//# sourceMappingURL=readers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readers.js","sourceRoot":"","sources":["../../src/helpers/readers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"readers.js","sourceRoot":"","sources":["../../src/helpers/readers.ts"],"names":[],"mappings":"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"}
|
package/lib/helpers/types.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export async function validateTests(unvalidatedTests, packageDirectories) {
|
|
|
11
11
|
}));
|
|
12
12
|
for (const { test, testPath } of results) {
|
|
13
13
|
if (testPath === undefined) {
|
|
14
|
-
warnings.push(`The test method ${test}.cls was not found in any package directory
|
|
14
|
+
warnings.push(`The test method ${test}.cls was not found in any package directory`);
|
|
15
15
|
}
|
|
16
16
|
else {
|
|
17
17
|
validatedTests.push(test);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateTests.js","sourceRoot":"","sources":["../../src/helpers/validateTests.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,gBAA0B,EAC1B,kBAA4B;IAE5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,8CAA8C;IAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,eAAe,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAClF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,OAAO,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,IAAI,
|
|
1
|
+
{"version":3,"file":"validateTests.js","sourceRoot":"","sources":["../../src/helpers/validateTests.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,gBAA0B,EAC1B,kBAA4B;IAE5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,8CAA8C;IAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,eAAe,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAClF,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC,CACH,CAAC;IAEF,KAAK,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,OAAO,EAAE,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,IAAI,6CAA6C,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,kBAA4B;IAC/E,yDAAyD;IACzD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,kBAAkB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAC9E,CAAC;IAEF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,WAAmB;IACpE,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzC,oEAAoE;IACpE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -38,6 +38,14 @@ Ignore a package directory.
|
|
|
38
38
|
|
|
39
39
|
If provided, do not search the package directory for test annotations.
|
|
40
40
|
|
|
41
|
+
# flags.no-warnings.summary
|
|
42
|
+
|
|
43
|
+
Do not print warnings for each Apex file missing annotations.
|
|
44
|
+
|
|
45
|
+
# flags.no-warnings.description
|
|
46
|
+
|
|
47
|
+
Do not print warnings for each Apex file missing annotations.
|
|
48
|
+
|
|
41
49
|
# examples
|
|
42
50
|
|
|
43
51
|
- <%= config.bin %> <%= command.id %> --format csv
|
package/oclif.manifest.json
CHANGED
|
@@ -65,6 +65,15 @@
|
|
|
65
65
|
"hasDynamicHelp": false,
|
|
66
66
|
"multiple": true,
|
|
67
67
|
"type": "option"
|
|
68
|
+
},
|
|
69
|
+
"no-warnings": {
|
|
70
|
+
"char": "n",
|
|
71
|
+
"description": "Do not print warnings for each Apex file missing annotations.",
|
|
72
|
+
"name": "no-warnings",
|
|
73
|
+
"required": false,
|
|
74
|
+
"summary": "Do not print warnings for each Apex file missing annotations.",
|
|
75
|
+
"allowNo": false,
|
|
76
|
+
"type": "boolean"
|
|
68
77
|
}
|
|
69
78
|
},
|
|
70
79
|
"hasDynamicHelp": false,
|
|
@@ -90,5 +99,5 @@
|
|
|
90
99
|
]
|
|
91
100
|
}
|
|
92
101
|
},
|
|
93
|
-
"version": "1.
|
|
102
|
+
"version": "1.11.0"
|
|
94
103
|
}
|
package/package.json
CHANGED