UNPKG

@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
"use strict"; 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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