@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
71 lines • 5.33 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger"));
class IndividualClassCoverage {
constructor(codeCoverage, logger) {
this.codeCoverage = codeCoverage;
this.logger = logger;
}
getIndividualClassCoverage(classesToBeValidated) {
let individualClassCoverage = [];
// Return every class in coverage json if test level is not RunAllTestsInPackage
individualClassCoverage = this.codeCoverage.map((cls) => {
return { name: cls.name, coveredPercent: cls.coveredPercent };
});
// Filter individualClassCoverage based on classesToBeValidated
if (classesToBeValidated && classesToBeValidated.length > 0)
individualClassCoverage = individualClassCoverage.filter((cls) => {
return classesToBeValidated.includes(cls.name);
});
return individualClassCoverage;
}
validateIndividualClassCoverage(individualClassCoverage, coverageThreshold) {
if (coverageThreshold < 75) {
sfp_logger_1.default.log('Setting minimum coverage percentage to 75%.', sfp_logger_1.LoggerLevel.INFO, this.logger);
coverageThreshold = 75;
}
sfp_logger_1.default.log(`Validating individual classes for code coverage greater than ${coverageThreshold} percent`, sfp_logger_1.LoggerLevel.INFO, this.logger);
let classesWithInvalidCoverage = individualClassCoverage.filter((cls) => {
return cls.coveredPercent < coverageThreshold;
});
if (classesWithInvalidCoverage.length > 0) {
return {
result: false,
message: 'There are classes which do not satisfy the individual coverage requirements',
classesCovered: individualClassCoverage,
classesWithInvalidCoverage: classesWithInvalidCoverage,
};
}
else
return {
result: true,
message: 'All classes in this test run meet the required coverage threshold',
classesCovered: individualClassCoverage,
};
}
}
exports.default = IndividualClassCoverage;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5kaXZpZHVhbENsYXNzQ292ZXJhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9hcGV4L2NvdmVyYWdlL0luZGl2aWR1YWxDbGFzc0NvdmVyYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBcUU7QUFFckUsTUFBcUIsdUJBQXVCO0lBQ3hDLFlBQTJCLFlBQWlCLEVBQVUsTUFBYztRQUF6QyxpQkFBWSxHQUFaLFlBQVksQ0FBSztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRWpFLDBCQUEwQixDQUFDLG9CQUE4QjtRQUM1RCxJQUFJLHVCQUF1QixHQUdyQixFQUFFLENBQUM7UUFFVCxnRkFBZ0Y7UUFDaEYsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwRCxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztRQUVGLCtEQUErRDtRQUNoRSxJQUFHLG9CQUFvQixJQUFJLG9CQUFvQixDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQzFELHVCQUF1QixHQUFHLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUM1RCxPQUFPLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFHSCxPQUFPLHVCQUF1QixDQUFDO0lBQ25DLENBQUM7SUFFTSwrQkFBK0IsQ0FDbEMsdUJBQXdDLEVBQ3hDLGlCQUEwQjtRQU8xQixJQUFJLGlCQUFpQixHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLG9CQUFTLENBQUMsR0FBRyxDQUFDLDZDQUE2QyxFQUFFLHdCQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1RixpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELG9CQUFTLENBQUMsR0FBRyxDQUNULGdFQUFnRSxpQkFBaUIsVUFBVSxFQUMzRix3QkFBVyxDQUFDLElBQUksRUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FDZCxDQUFDO1FBQ0YsSUFBSSwwQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwRSxPQUFPLEdBQUcsQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLENBQUM7UUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLDBCQUEwQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QyxPQUFPO2dCQUNILE1BQU0sRUFBRSxLQUFLO2dCQUNiLE9BQU8sRUFBRSw2RUFBNkU7Z0JBQ3RGLGNBQWMsRUFBRSx1QkFBdUI7Z0JBQ3ZDLDBCQUEwQixFQUFFLDBCQUEwQjthQUN6RCxDQUFDO1FBQ04sQ0FBQzs7WUFDRyxPQUFPO2dCQUNILE1BQU0sRUFBRSxJQUFJO2dCQUNaLE9BQU8sRUFBRSxtRUFBbUU7Z0JBQzVFLGNBQWMsRUFBRSx1QkFBdUI7YUFDMUMsQ0FBQztJQUNWLENBQUM7Q0FDSjtBQTdERCwwQ0E2REMifQ==