UNPKG

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