@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
99 lines • 8.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.JsonReporter = void 0;
const skippedProperties = ['skipRate', 'coveredLines', 'totalLines'];
const timeProperties = ['testExecutionTimeInMs', 'testTotalTimeInMs', 'commandTimeInMs'];
class JsonReporter {
format(result) {
return {
summary: this.formatSummary(result),
tests: this.formatTestResults(result.tests),
...(result.codecoverage
? {
coverage: this.formatCoverage(result),
}
: {}),
};
}
formatSummary(testResult) {
const summary = {};
Object.entries(testResult.summary).forEach(([key, value]) => {
if (skippedProperties.includes(key)) {
return;
}
if (timeProperties.includes(key)) {
key = key.replace('InMs', '');
value = `${value} ms`;
}
Object.assign(summary, { [key]: value });
});
return summary;
}
formatTestResults(testResults) {
return testResults.map((test) => {
return {
Id: test.id,
QueueItemId: test.queueItemId,
StackTrace: test.stackTrace,
Message: test.message,
AsyncApexJobId: test.asyncApexJobId,
MethodName: test.methodName,
Outcome: test.outcome,
ApexClass: {
Id: test.apexClass.id,
Name: test.apexClass.name,
NamespacePrefix: test.apexClass.namespacePrefix,
},
RunTime: test.runTime,
FullName: test.fullName,
};
});
}
formatCoverage(testResult) {
const formattedCov = {
coverage: [],
records: [],
summary: {
totalLines: testResult.summary.totalLines,
coveredLines: testResult.summary.coveredLines,
orgWideCoverage: testResult.summary.orgWideCoverage,
testRunCoverage: testResult.summary.testRunCoverage,
},
};
if (testResult.codecoverage) {
formattedCov.coverage = testResult.codecoverage.map((cov) => {
const lines = {};
cov.coveredLines.forEach((covLine) => (lines[covLine] = 1));
cov.uncoveredLines.forEach((uncovLine) => (lines[uncovLine] = 0));
return {
id: cov.apexId,
name: cov.name,
totalLines: cov.numLinesCovered + cov.numLinesUncovered,
lines,
totalCovered: cov.numLinesCovered,
coveredPercent: parseInt(cov.percentage),
};
});
testResult.tests.forEach((test) => {
if (test.perClassCoverage) {
test.perClassCoverage.forEach((perClassCov) => {
formattedCov.records.push({
ApexTestClass: { Id: test.id, Name: test.apexClass.name },
...(perClassCov.coverage ? { Coverage: perClassCov.coverage } : {}),
TestMethodName: test.methodName,
NumLinesCovered: perClassCov.numLinesCovered,
ApexClassOrTrigger: {
Id: perClassCov.apexClassOrTriggerId,
Name: perClassCov.apexClassOrTriggerName,
},
NumLinesUncovered: perClassCov.numLinesUncovered,
});
});
}
});
}
return formattedCov;
}
}
exports.JsonReporter = JsonReporter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSlNPTlJlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvcmUvYXBleHRlc3QvSlNPTlJlcG9ydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQThEQSxNQUFNLGlCQUFpQixHQUFHLENBQUMsVUFBVSxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNyRSxNQUFNLGNBQWMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFFekYsTUFBYSxZQUFZO0lBQ2QsTUFBTSxDQUNULE1BQWtCO1FBTWxCLE9BQU87WUFDSCxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7WUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWTtnQkFDbkIsQ0FBQyxDQUFDO29CQUNJLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztpQkFDeEM7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNaLENBQUM7SUFDTixDQUFDO0lBRU8sYUFBYSxDQUFDLFVBQXNCO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVuQixNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1lBQ3hELElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMs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