@salesforce/apex-node 6.0.1 → 6.1.1
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/lib/src/execute/executeService.js +2 -1
- package/lib/src/execute/executeService.js.map +1 -1
- package/lib/src/reporters/coverageReporter.js +6 -5
- package/lib/src/reporters/coverageReporter.js.map +1 -1
- package/lib/src/reporters/humanFormatTransform.d.ts +1 -0
- package/lib/src/reporters/humanFormatTransform.js +38 -4
- package/lib/src/reporters/humanFormatTransform.js.map +1 -1
- package/lib/src/reporters/humanReporter.js +42 -12
- package/lib/src/reporters/humanReporter.js.map +1 -1
- package/lib/src/reporters/index.d.ts +2 -1
- package/lib/src/reporters/index.js +5 -3
- package/lib/src/reporters/index.js.map +1 -1
- package/lib/src/reporters/junitFormatTransformer.d.ts +8 -1
- package/lib/src/reporters/junitFormatTransformer.js +48 -19
- package/lib/src/reporters/junitFormatTransformer.js.map +1 -1
- package/lib/src/reporters/junitReporter.js +21 -15
- package/lib/src/reporters/junitReporter.js.map +1 -1
- package/lib/src/reporters/tapFormatTransform.d.ts +8 -1
- package/lib/src/reporters/tapFormatTransform.js +50 -5
- package/lib/src/reporters/tapFormatTransform.js.map +1 -1
- package/lib/src/reporters/tapReporter.js +48 -18
- package/lib/src/reporters/tapReporter.js.map +1 -1
- package/lib/src/streaming/index.d.ts +1 -2
- package/lib/src/streaming/index.js +1 -4
- package/lib/src/streaming/index.js.map +1 -1
- package/lib/src/streaming/testResultStringifyStream.d.ts +10 -2
- package/lib/src/streaming/testResultStringifyStream.js +68 -29
- package/lib/src/streaming/testResultStringifyStream.js.map +1 -1
- package/lib/src/streaming/utils.d.ts +0 -3
- package/lib/src/streaming/utils.js +7 -14
- package/lib/src/streaming/utils.js.map +1 -1
- package/lib/src/tests/asyncTests.d.ts +3 -0
- package/lib/src/tests/asyncTests.js +197 -134
- package/lib/src/tests/asyncTests.js.map +1 -1
- package/lib/src/tests/codeCoverage.js +86 -68
- package/lib/src/tests/codeCoverage.js.map +1 -1
- package/lib/src/tests/syncTests.js +113 -98
- package/lib/src/tests/syncTests.js.map +1 -1
- package/lib/src/tests/testService.d.ts +5 -0
- package/lib/src/tests/testService.js +119 -96
- package/lib/src/tests/testService.js.map +1 -1
- package/lib/src/tests/utils.d.ts +3 -0
- package/lib/src/tests/utils.js +53 -1
- package/lib/src/tests/utils.js.map +1 -1
- package/lib/src/utils/heapMonitor.d.ts +72 -0
- package/lib/src/utils/heapMonitor.js +164 -0
- package/lib/src/utils/heapMonitor.js.map +1 -0
- package/lib/src/utils/index.d.ts +1 -0
- package/lib/src/utils/index.js +3 -1
- package/lib/src/utils/index.js.map +1 -1
- package/lib/src/utils/tableWritableStream.js +33 -5
- package/lib/src/utils/tableWritableStream.js.map +1 -1
- package/package.json +15 -14
- package/lib/src/streaming/codeCoverageStringifyStream.d.ts +0 -12
- package/lib/src/streaming/codeCoverageStringifyStream.js +0 -80
- package/lib/src/streaming/codeCoverageStringifyStream.js.map +0 -1
- package/lib/src/streaming/jsonStringifyStream.d.ts +0 -18
- package/lib/src/streaming/jsonStringifyStream.js +0 -118
- package/lib/src/streaming/jsonStringifyStream.js.map +0 -1
|
@@ -39,7 +39,7 @@ exports.CodeCoverage = void 0;
|
|
|
39
39
|
const util = __importStar(require("util"));
|
|
40
40
|
const utils_1 = require("./utils");
|
|
41
41
|
const constants_1 = require("./constants");
|
|
42
|
-
const
|
|
42
|
+
const utils_2 = require("../utils");
|
|
43
43
|
class CodeCoverage {
|
|
44
44
|
connection;
|
|
45
45
|
constructor(connection) {
|
|
@@ -50,11 +50,17 @@ class CodeCoverage {
|
|
|
50
50
|
* @returns Org wide coverage percentage for a given username connection
|
|
51
51
|
*/
|
|
52
52
|
async getOrgWideCoverage() {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
utils_2.HeapMonitor.getInstance().checkHeapSize('codeCoverage.getOrgWideCoverage');
|
|
54
|
+
try {
|
|
55
|
+
const orgWideCoverageResult = (await this.connection.tooling.query('SELECT PercentCovered FROM ApexOrgWideCoverage'));
|
|
56
|
+
if (orgWideCoverageResult.records.length === 0) {
|
|
57
|
+
return '0%';
|
|
58
|
+
}
|
|
59
|
+
return `${orgWideCoverageResult.records[0].PercentCovered}%`;
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
utils_2.HeapMonitor.getInstance().checkHeapSize('codeCoverage.getOrgWideCoverage');
|
|
56
63
|
}
|
|
57
|
-
return `${orgWideCoverageResult.records[0].PercentCovered}%`;
|
|
58
64
|
}
|
|
59
65
|
/**
|
|
60
66
|
* Returns the code coverage information for each Apex class covered by each Apex test method from ApexCodeCoverage entity
|
|
@@ -63,35 +69,41 @@ class CodeCoverage {
|
|
|
63
69
|
* NOTE: a test could cover more than one class, result map should contain a record for each covered class
|
|
64
70
|
*/
|
|
65
71
|
async getPerClassCodeCoverage(apexTestClassSet) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
72
|
+
utils_2.HeapMonitor.getInstance().checkHeapSize('codeCoverage.getPerClassCodeCoverage');
|
|
73
|
+
try {
|
|
74
|
+
if (apexTestClassSet.size === 0) {
|
|
75
|
+
return new Map();
|
|
76
|
+
}
|
|
77
|
+
const perClassCodeCovResults = await this.queryPerClassCodeCov(apexTestClassSet);
|
|
78
|
+
const perClassCoverageMap = new Map();
|
|
79
|
+
perClassCodeCovResults.forEach((chunk) => {
|
|
80
|
+
chunk.records.forEach((item) => {
|
|
81
|
+
const totalLines = item.NumLinesCovered + item.NumLinesUncovered;
|
|
82
|
+
const percentage = (0, utils_1.calculatePercentage)(item.NumLinesCovered, totalLines);
|
|
83
|
+
const value = {
|
|
84
|
+
apexClassOrTriggerName: item.ApexClassOrTrigger.Name,
|
|
85
|
+
apexClassOrTriggerId: item.ApexClassOrTrigger.Id,
|
|
86
|
+
apexTestClassId: item.ApexTestClassId,
|
|
87
|
+
apexTestMethodName: item.TestMethodName,
|
|
88
|
+
numLinesCovered: item.NumLinesCovered,
|
|
89
|
+
numLinesUncovered: item.NumLinesUncovered,
|
|
90
|
+
percentage,
|
|
91
|
+
...(item.Coverage ? { coverage: item.Coverage } : {})
|
|
92
|
+
};
|
|
93
|
+
const key = `${item.ApexTestClassId}-${item.TestMethodName}`;
|
|
94
|
+
if (perClassCoverageMap.get(key)) {
|
|
95
|
+
perClassCoverageMap.get(key).push(value);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
perClassCoverageMap.set(`${item.ApexTestClassId}-${item.TestMethodName}`, [value]);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
92
101
|
});
|
|
93
|
-
|
|
94
|
-
|
|
102
|
+
return perClassCoverageMap;
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
utils_2.HeapMonitor.getInstance().checkHeapSize('codeCoverage.getPerClassCodeCoverage');
|
|
106
|
+
}
|
|
95
107
|
}
|
|
96
108
|
/**
|
|
97
109
|
* Returns the aggregate code coverage information from ApexCodeCoverageAggregate entity for a given set of Apex classes
|
|
@@ -99,36 +111,42 @@ class CodeCoverage {
|
|
|
99
111
|
* @returns The aggregate code coverage information for the given set of Apex classes
|
|
100
112
|
*/
|
|
101
113
|
async getAggregateCodeCoverage(apexClassIdSet) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
: '
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
114
|
+
utils_2.HeapMonitor.getInstance().checkHeapSize('codeCoverage.getAggregateCodeCoverage');
|
|
115
|
+
try {
|
|
116
|
+
const codeCoverageAggregates = await this.queryAggregateCodeCov(apexClassIdSet);
|
|
117
|
+
let totalLinesCovered = 0;
|
|
118
|
+
let totalLinesUncovered = 0;
|
|
119
|
+
const totalCodeCoverageResults = [];
|
|
120
|
+
codeCoverageAggregates.forEach((chunk) => {
|
|
121
|
+
const codeCoverageResults = chunk.records.map((item) => {
|
|
122
|
+
totalLinesCovered += item.NumLinesCovered;
|
|
123
|
+
totalLinesUncovered += item.NumLinesUncovered;
|
|
124
|
+
const totalLines = item.NumLinesCovered + item.NumLinesUncovered;
|
|
125
|
+
const percentage = (0, utils_1.calculatePercentage)(item.NumLinesCovered, totalLines);
|
|
126
|
+
return {
|
|
127
|
+
apexId: item.ApexClassOrTrigger.Id,
|
|
128
|
+
name: item.ApexClassOrTrigger.Name,
|
|
129
|
+
type: item.ApexClassOrTrigger.Id.startsWith('01p')
|
|
130
|
+
? 'ApexClass'
|
|
131
|
+
: 'ApexTrigger',
|
|
132
|
+
numLinesCovered: item.NumLinesCovered,
|
|
133
|
+
numLinesUncovered: item.NumLinesUncovered,
|
|
134
|
+
percentage,
|
|
135
|
+
coveredLines: item.Coverage.coveredLines,
|
|
136
|
+
uncoveredLines: item.Coverage.uncoveredLines
|
|
137
|
+
};
|
|
138
|
+
});
|
|
139
|
+
totalCodeCoverageResults.push(...codeCoverageResults);
|
|
124
140
|
});
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
141
|
+
return {
|
|
142
|
+
codeCoverageResults: totalCodeCoverageResults,
|
|
143
|
+
totalLines: totalLinesCovered + totalLinesUncovered,
|
|
144
|
+
coveredLines: totalLinesCovered
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
finally {
|
|
148
|
+
utils_2.HeapMonitor.getInstance().checkHeapSize('codeCoverage.getAggregateCodeCoverage');
|
|
149
|
+
}
|
|
132
150
|
}
|
|
133
151
|
async queryPerClassCodeCov(apexTestClassSet) {
|
|
134
152
|
const perClassCodeCovQuery = 'SELECT ApexTestClassId, ApexClassOrTrigger.Id, ApexClassOrTrigger.Name, TestMethodName, NumLinesCovered, NumLinesUncovered, Coverage FROM ApexCodeCoverage WHERE ApexTestClassId IN (%s)';
|
|
@@ -180,21 +198,21 @@ class CodeCoverage {
|
|
|
180
198
|
}
|
|
181
199
|
exports.CodeCoverage = CodeCoverage;
|
|
182
200
|
__decorate([
|
|
183
|
-
(0,
|
|
201
|
+
(0, utils_2.elapsedTime)()
|
|
184
202
|
], CodeCoverage.prototype, "getOrgWideCoverage", null);
|
|
185
203
|
__decorate([
|
|
186
|
-
(0,
|
|
204
|
+
(0, utils_2.elapsedTime)()
|
|
187
205
|
], CodeCoverage.prototype, "getPerClassCodeCoverage", null);
|
|
188
206
|
__decorate([
|
|
189
|
-
(0,
|
|
207
|
+
(0, utils_2.elapsedTime)()
|
|
190
208
|
], CodeCoverage.prototype, "getAggregateCodeCoverage", null);
|
|
191
209
|
__decorate([
|
|
192
|
-
(0,
|
|
210
|
+
(0, utils_2.elapsedTime)()
|
|
193
211
|
], CodeCoverage.prototype, "queryPerClassCodeCov", null);
|
|
194
212
|
__decorate([
|
|
195
|
-
(0,
|
|
213
|
+
(0, utils_2.elapsedTime)()
|
|
196
214
|
], CodeCoverage.prototype, "queryAggregateCodeCov", null);
|
|
197
215
|
__decorate([
|
|
198
|
-
(0,
|
|
216
|
+
(0, utils_2.elapsedTime)()
|
|
199
217
|
], CodeCoverage.prototype, "fetchResults", null);
|
|
200
218
|
//# sourceMappingURL=codeCoverage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codeCoverage.js","sourceRoot":"","sources":["../../../src/tests/codeCoverage.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWH,2CAA6B;AAC7B,mCAAwD;AACxD,2CAAiD;AACjD,
|
|
1
|
+
{"version":3,"file":"codeCoverage.js","sourceRoot":"","sources":["../../../src/tests/codeCoverage.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ const utils_1 = require("../utils");
|
|
|
17
17
|
const codeCoverage_1 = require("./codeCoverage");
|
|
18
18
|
const diagnosticUtil_1 = require("./diagnosticUtil");
|
|
19
19
|
const utils_2 = require("./utils");
|
|
20
|
-
const elapsedTime_1 = require("../utils/elapsedTime");
|
|
21
20
|
class SyncTests {
|
|
22
21
|
connection;
|
|
23
22
|
codecoverage;
|
|
@@ -32,6 +31,7 @@ class SyncTests {
|
|
|
32
31
|
* @param token cancellation token
|
|
33
32
|
*/
|
|
34
33
|
async runTests(options, codeCoverage = false, token) {
|
|
34
|
+
utils_1.HeapMonitor.getInstance().checkHeapSize('synctests.runTests');
|
|
35
35
|
try {
|
|
36
36
|
const url = `${this.connection.tooling._baseUrl()}/runTestsSynchronous`;
|
|
37
37
|
const request = {
|
|
@@ -49,120 +49,135 @@ class SyncTests {
|
|
|
49
49
|
catch (e) {
|
|
50
50
|
throw (0, diagnosticUtil_1.formatTestErrors)(e);
|
|
51
51
|
}
|
|
52
|
+
finally {
|
|
53
|
+
utils_1.HeapMonitor.getInstance().checkHeapSize('synctests.runTests');
|
|
54
|
+
}
|
|
52
55
|
}
|
|
53
56
|
async formatSyncResults(apiTestResult, startTime, codeCoverage = false) {
|
|
57
|
+
utils_1.HeapMonitor.getInstance().checkHeapSize('synctests.formatSyncResults');
|
|
54
58
|
const coveredApexClassIdSet = new Set();
|
|
55
59
|
const { apexTestClassIdSet, testResults } = this.buildSyncTestResults(apiTestResult);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
perClassCov
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
60
|
+
try {
|
|
61
|
+
const globalTestFailed = apiTestResult.failures.length;
|
|
62
|
+
const globalTestPassed = apiTestResult.successes.length;
|
|
63
|
+
const result = {
|
|
64
|
+
summary: {
|
|
65
|
+
outcome: globalTestFailed === 0
|
|
66
|
+
? "Passed" /* ApexTestRunResultStatus.Passed */
|
|
67
|
+
: "Failed" /* ApexTestRunResultStatus.Failed */,
|
|
68
|
+
testsRan: apiTestResult.numTestsRun,
|
|
69
|
+
passing: globalTestPassed,
|
|
70
|
+
failing: globalTestFailed,
|
|
71
|
+
skipped: 0,
|
|
72
|
+
passRate: (0, utils_2.calculatePercentage)(globalTestPassed, apiTestResult.numTestsRun),
|
|
73
|
+
failRate: (0, utils_2.calculatePercentage)(globalTestFailed, apiTestResult.numTestsRun),
|
|
74
|
+
skipRate: (0, utils_2.calculatePercentage)(0, apiTestResult.numTestsRun),
|
|
75
|
+
testStartTime: (0, utils_1.formatStartTime)(startTime, 'ISO'),
|
|
76
|
+
testExecutionTimeInMs: apiTestResult.totalTime ?? 0,
|
|
77
|
+
testTotalTimeInMs: apiTestResult.totalTime ?? 0,
|
|
78
|
+
commandTimeInMs: (0, utils_1.getCurrentTime)() - startTime,
|
|
79
|
+
hostname: this.connection.instanceUrl,
|
|
80
|
+
orgId: this.connection.getAuthInfoFields().orgId,
|
|
81
|
+
username: this.connection.getUsername(),
|
|
82
|
+
testRunId: '',
|
|
83
|
+
userId: this.connection.getConnectionOptions().userId
|
|
84
|
+
},
|
|
85
|
+
tests: testResults
|
|
86
|
+
};
|
|
87
|
+
if (codeCoverage) {
|
|
88
|
+
const perClassCovMap = await this.codecoverage.getPerClassCodeCoverage(apexTestClassIdSet);
|
|
89
|
+
if (perClassCovMap.size > 0) {
|
|
90
|
+
result.tests.forEach((item) => {
|
|
91
|
+
const keyCodeCov = `${item.apexClass.id}-${item.methodName}`;
|
|
92
|
+
const perClassCov = perClassCovMap.get(keyCodeCov);
|
|
93
|
+
if (perClassCov) {
|
|
94
|
+
perClassCov.forEach((classCov) => coveredApexClassIdSet.add(classCov.apexClassOrTriggerId));
|
|
95
|
+
item.perClassCoverage = perClassCov;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const { codeCoverageResults, totalLines, coveredLines } = await this.codecoverage.getAggregateCodeCoverage(coveredApexClassIdSet);
|
|
100
|
+
result.codecoverage = codeCoverageResults;
|
|
101
|
+
result.summary.totalLines = totalLines;
|
|
102
|
+
result.summary.coveredLines = coveredLines;
|
|
103
|
+
result.summary.testRunCoverage = (0, utils_2.calculatePercentage)(coveredLines, totalLines);
|
|
104
|
+
result.summary.orgWideCoverage =
|
|
105
|
+
await this.codecoverage.getOrgWideCoverage();
|
|
93
106
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
result.summary.testRunCoverage = (0, utils_2.calculatePercentage)(coveredLines, totalLines);
|
|
99
|
-
result.summary.orgWideCoverage =
|
|
100
|
-
await this.codecoverage.getOrgWideCoverage();
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
utils_1.HeapMonitor.getInstance().checkHeapSize('synctests.formatSyncResults');
|
|
101
111
|
}
|
|
102
|
-
return result;
|
|
103
112
|
}
|
|
104
113
|
buildSyncTestResults(apiTestResult) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
id
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
114
|
+
utils_1.HeapMonitor.getInstance().checkHeapSize('syncTests.buildSyncTestResults');
|
|
115
|
+
try {
|
|
116
|
+
const testResults = [];
|
|
117
|
+
const apexTestClassIdSet = new Set();
|
|
118
|
+
apiTestResult.successes.forEach((item) => {
|
|
119
|
+
const nms = item.namespace ? `${item.namespace}.` : '';
|
|
120
|
+
apexTestClassIdSet.add(item.id);
|
|
121
|
+
testResults.push({
|
|
122
|
+
id: '',
|
|
123
|
+
queueItemId: '',
|
|
124
|
+
stackTrace: '',
|
|
125
|
+
message: '',
|
|
126
|
+
asyncApexJobId: '',
|
|
127
|
+
methodName: item.methodName,
|
|
128
|
+
outcome: "Pass" /* ApexTestResultOutcome.Pass */,
|
|
129
|
+
apexLogId: apiTestResult.apexLogId,
|
|
130
|
+
apexClass: {
|
|
131
|
+
id: item.id,
|
|
132
|
+
name: item.name,
|
|
133
|
+
namespacePrefix: item.namespace,
|
|
134
|
+
fullName: `${nms}${item.name}`
|
|
135
|
+
},
|
|
136
|
+
runTime: item.time ?? 0,
|
|
137
|
+
testTimestamp: '',
|
|
138
|
+
fullName: `${nms}${item.name}.${item.methodName}`
|
|
139
|
+
});
|
|
128
140
|
});
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
141
|
+
apiTestResult.failures.forEach((item) => {
|
|
142
|
+
const nms = item.namespace ? `${item.namespace}__` : '';
|
|
143
|
+
apexTestClassIdSet.add(item.id);
|
|
144
|
+
const diagnostic = item.message || item.stackTrace ? (0, diagnosticUtil_1.getSyncDiagnostic)(item) : null;
|
|
145
|
+
testResults.push({
|
|
146
|
+
id: '',
|
|
147
|
+
queueItemId: '',
|
|
148
|
+
stackTrace: item.stackTrace,
|
|
149
|
+
message: item.message,
|
|
150
|
+
asyncApexJobId: '',
|
|
151
|
+
methodName: item.methodName,
|
|
152
|
+
outcome: "Fail" /* ApexTestResultOutcome.Fail */,
|
|
153
|
+
apexLogId: apiTestResult.apexLogId,
|
|
154
|
+
apexClass: {
|
|
155
|
+
id: item.id,
|
|
156
|
+
name: item.name,
|
|
157
|
+
namespacePrefix: item.namespace,
|
|
158
|
+
fullName: `${nms}${item.name}`
|
|
159
|
+
},
|
|
160
|
+
runTime: item.time ?? 0,
|
|
161
|
+
testTimestamp: '',
|
|
162
|
+
fullName: `${nms}${item.name}.${item.methodName}`,
|
|
163
|
+
...(diagnostic ? { diagnostic } : {})
|
|
164
|
+
});
|
|
153
165
|
});
|
|
154
|
-
|
|
155
|
-
|
|
166
|
+
return { apexTestClassIdSet, testResults };
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
utils_1.HeapMonitor.getInstance().checkHeapSize('syncTests.buildSyncTestResults');
|
|
170
|
+
}
|
|
156
171
|
}
|
|
157
172
|
}
|
|
158
173
|
exports.SyncTests = SyncTests;
|
|
159
174
|
__decorate([
|
|
160
|
-
(0,
|
|
175
|
+
(0, utils_1.elapsedTime)()
|
|
161
176
|
], SyncTests.prototype, "runTests", null);
|
|
162
177
|
__decorate([
|
|
163
|
-
(0,
|
|
178
|
+
(0, utils_1.elapsedTime)()
|
|
164
179
|
], SyncTests.prototype, "formatSyncResults", null);
|
|
165
180
|
__decorate([
|
|
166
|
-
(0,
|
|
181
|
+
(0, utils_1.elapsedTime)()
|
|
167
182
|
], SyncTests.prototype, "buildSyncTestResults", null);
|
|
168
183
|
//# sourceMappingURL=syncTests.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncTests.js","sourceRoot":"","sources":["../../../src/tests/syncTests.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;AAIH,
|
|
1
|
+
{"version":3,"file":"syncTests.js","sourceRoot":"","sources":["../../../src/tests/syncTests.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { Connection } from '@salesforce/core';
|
|
2
3
|
import { ApexTestProgressValue, AsyncTestArrayConfiguration, AsyncTestConfiguration, OutputDirConfig, SyncTestConfiguration, TestLevel, TestResult, TestRunIdResult, TestSuiteMembershipRecord } from './types';
|
|
3
4
|
import { CancellationToken, Progress } from '../common';
|
|
4
5
|
import { AsyncTests } from './asyncTests';
|
|
6
|
+
import { Writable } from 'node:stream';
|
|
5
7
|
import { Duration } from '@salesforce/kit';
|
|
6
8
|
export declare class TestService {
|
|
7
9
|
private readonly connection;
|
|
@@ -56,6 +58,7 @@ export declare class TestService {
|
|
|
56
58
|
* @param immediatelyReturn should not wait for test run to complete, return test run id immediately
|
|
57
59
|
* @param progress progress reporter
|
|
58
60
|
* @param token cancellation token
|
|
61
|
+
* @param timeout
|
|
59
62
|
*/
|
|
60
63
|
runTestAsynchronous(options: AsyncTestConfiguration | AsyncTestArrayConfiguration, codeCoverage?: boolean, immediatelyReturn?: boolean, progress?: Progress<ApexTestProgressValue>, token?: CancellationToken, timeout?: Duration): Promise<TestResult | TestRunIdResult>;
|
|
61
64
|
/**
|
|
@@ -77,4 +80,6 @@ export declare class TestService {
|
|
|
77
80
|
buildAsyncPayload(testLevel: TestLevel, tests?: string, classNames?: string, suiteNames?: string): Promise<AsyncTestConfiguration | AsyncTestArrayConfiguration>;
|
|
78
81
|
private buildAsyncClassPayload;
|
|
79
82
|
private buildTestPayload;
|
|
83
|
+
private runPipeline;
|
|
84
|
+
createStream(filePath: string): Writable;
|
|
80
85
|
}
|