Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 63 additions & 23 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"Debuggers"
],
"dependencies": {
"@salesforce/apex-node": "^8.4.10",
"@salesforce/apex-node": "^8.4.13",
"salesforcedx-vscode-apex-log": "*",
"@salesforce/effect-ext-utils": "*",
"@salesforce/salesforcedx-apex-replay-debugger": "*",
Expand Down
2 changes: 1 addition & 1 deletion packages/salesforcedx-vscode-apex-testing/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"Other"
],
"dependencies": {
"@salesforce/apex-node": "^8.4.10",
"@salesforce/apex-node": "^8.4.13",
"@salesforce/effect-ext-utils": "*",
"@salesforce/types": "1.7.1",
"@salesforce/vscode-i18n": "*",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,23 @@ const getCoverageData = async (): Promise<CoverageItem[] | CodeCoverageResult[]>
throw new Error(nls.localize('colorizer_no_code_coverage_on_test_results', testRunId));
}
const testResultOutput = await readFileUri(testResultUri);
const testResult = JSON.parse(testResultOutput);
type TestResultWithCoverage = {
codecoverage?: CodeCoverageResult[];
coverage?: { coverage: CodeCoverageResult[] };
};
// JSON.parse returns any; shape is validated before use
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions -- test result shape from apex-node
const testResult = JSON.parse(testResultOutput) as TestResultWithCoverage;
if (testResult.coverage === undefined && testResult.codecoverage === undefined) {
throw new Error(nls.localize('colorizer_no_code_coverage_on_test_results', testRunId));
}

return testResult.codecoverage ?? testResult.coverage.coverage;
if (testResult.codecoverage !== undefined) {
return testResult.codecoverage;
}
if (testResult.coverage !== undefined) {
return testResult.coverage.coverage;
}
throw new Error(nls.localize('colorizer_no_code_coverage_on_test_results', testRunId));
};

/** Use document.uri.path for Web/Desktop compatibility (fsPath may be empty in Web for some schemes). */
Expand Down Expand Up @@ -140,7 +151,8 @@ export class CodeCoverageHandler {
this.uncoveredLines = coverage.uncoveredLines;
this.setCoverageDecorators(editor);
} catch (e) {
void getApexTestingRuntime().runPromise(handleCoverageException(e));
const err = e instanceof Error ? e : new Error(String(e));
void getApexTestingRuntime().runPromise(handleCoverageException(err));
}
}
}
Expand All @@ -163,7 +175,8 @@ export class CodeCoverageHandler {
this.setCoverageDecorators(editor);
}
} catch (e) {
void getApexTestingRuntime().runPromise(handleCoverageException(e));
const err = e instanceof Error ? e : new Error(String(e));
void getApexTestingRuntime().runPromise(handleCoverageException(err));
}
this.statusBar.toggle(true);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {
SfCommandlet
} from '../utils/commandletHelpers';
import { ApexTestQuickPickItem } from '../utils/fileHelpers';
import { getFullClassName, isFlowTest } from '../utils/testUtils';
import { getTestController } from '../views/testController';
import { ApexLibraryTestRunExecutor } from './apexTestRun';

Expand All @@ -30,14 +31,19 @@ type ApexTestSuiteOptions = { suitename: string; tests: string[] };
const listApexClassItems = async (): Promise<ApexTestQuickPickItem[]> => {
const result = await getApexTestingRuntime().runPromise(discoverTests());
return result.classes
.filter(cls => !isFlowTest(cls))
.map(
(cls): ApexTestQuickPickItem => ({
label: cls.name,
description: cls.namespacePrefix ?? '',
type: 'Class'
type: 'Class',
fullClassName: getFullClassName(cls)
})
)
.toSorted((a, b): number => a.label.localeCompare(b.label));
.toSorted((a, b): number => {
const byLabel = a.label.localeCompare(b.label);
return byLabel !== 0 ? byLabel : (a.fullClassName ?? '').localeCompare(b.fullClassName ?? '');
});
};

const listApexTestSuiteItems = async (): Promise<ApexTestQuickPickItem[]> => {
Expand Down Expand Up @@ -75,7 +81,9 @@ class TestSuiteBuilder implements ParametersGatherer<ApexTestSuiteOptions> {
if (!apexClassSelection || apexClassSelection.length === 0) {
return { type: 'CANCEL' };
}
const apexClassNames = apexClassSelection.map(selection => selection.label);
const apexClassNames = apexClassSelection.map(
selection => selection.fullClassName ?? selection.label
);
return {
type: 'CONTINUE',
data: { suitename: testSuiteName.label, tests: apexClassNames }
Expand Down Expand Up @@ -122,7 +130,9 @@ class TestSuiteCreator implements ParametersGatherer<ApexTestSuiteOptions> {
if (!apexClassSelection || apexClassSelection.length === 0) {
return { type: 'CANCEL' };
}
const apexClassNames = apexClassSelection.map(selection => selection.label);
const apexClassNames = apexClassSelection.map(
selection => selection.fullClassName ?? selection.label
);
return {
type: 'CONTINUE',
data: { suitename: testSuiteName, tests: apexClassNames }
Expand Down
2 changes: 1 addition & 1 deletion packages/salesforcedx-vscode-apex/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"Programming Languages"
],
"dependencies": {
"@salesforce/apex-node": "^8.4.10",
"@salesforce/apex-node": "^8.4.13",
"@salesforce/apex-tmlanguage": "^1.8.3",
"@salesforce/salesforcedx-utils": "*",
"@salesforce/salesforcedx-utils-vscode": "*",
Expand Down
Loading