UNPKG

@flxbl-io/sfp

Version:

sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model

76 lines 6.34 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; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const QueryHelper_1 = __importDefault(require("../queryHelper/QueryHelper")); const ChunkArray_1 = require("../utils/ChunkArray"); const CODECOV_AGGREGATE_QUERY = `SELECT Id FROM ApexCodeCoverageAggregate`; const APEX_TEST_RESULT_QUERY = `SELECT Id FROM ApexTestResult`; const Delay_1 = require("../utils/Delay"); class ClearTestResults { constructor(org, logger) { this.org = org; this.logger = logger; } /** * Clear coverage and test results */ async clear() { this.conn = this.org.getConnection(); sfp_logger_1.default.log(`Clearing Coverage Results`, sfp_logger_1.LoggerLevel.DEBUG, this.logger); let codeCoverageAggregate = await QueryHelper_1.default.query(CODECOV_AGGREGATE_QUERY, this.conn, true); await this.deleteRecords('ApexCodeCoverageAggregate', codeCoverageAggregate); sfp_logger_1.default.log(`Cleared Coverage Results`, sfp_logger_1.LoggerLevel.DEBUG, this.logger); sfp_logger_1.default.log(`Clearing Test Results`, sfp_logger_1.LoggerLevel.DEBUG, this.logger); let testResults = await QueryHelper_1.default.query(APEX_TEST_RESULT_QUERY, this.conn, true); await this.deleteRecords('ApexTestResult', testResults); sfp_logger_1.default.log(`Cleared Test Results`, sfp_logger_1.LoggerLevel.DEBUG, this.logger); sfp_logger_1.default.log(`Cleared Existing Coverage and Test Results`, sfp_logger_1.LoggerLevel.INFO, this.logger); //allow org to catchup await (0, Delay_1.delay)(10000); } async deleteRecords(objectType, records) { if (records && records.length > 0) { let idsList = records.map((elem) => elem.Id); let errors = []; for (let idsToDelete of (0, ChunkArray_1.chunkArray)(2000, idsList)) { const deleteResults = await this.conn.tooling.destroy(objectType, idsToDelete); deleteResults.forEach((elem) => { if (!elem.success) { errors = errors.concat(elem.errors); } }); } if (errors.length > 0) { throw new Error(JSON.stringify(errors)); } } } } exports.default = ClearTestResults; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xlYXJDb2RlQ292ZXJhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9hcGV4dGVzdC9DbGVhckNvZGVDb3ZlcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsbUVBQXNFO0FBQ3RFLDZFQUFxRDtBQUNyRCxvREFBaUQ7QUFDakQsTUFBTSx1QkFBdUIsR0FBRywwQ0FBMEMsQ0FBQztBQUMzRSxNQUFNLHNCQUFzQixHQUFHLCtCQUErQixDQUFDO0FBQy9ELDBDQUF1QztBQUV2QyxNQUFxQixnQkFBZ0I7SUFHakMsWUFBMkIsR0FBUSxFQUFVLE1BQWM7UUFBaEMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBQy9EOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckMsb0JBQVMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsd0JBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLElBQUkscUJBQXFCLEdBQUcsTUFBTSxxQkFBVyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlGLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQywyQkFBMkIsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQzdFLG9CQUFTLENBQUMsR0FBRyxDQUFDLDBCQUEwQixFQUFFLHdCQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxRSxvQkFBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSx3QkFBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkUsSUFBSSxXQUFXLEdBQUcsTUFBTSxxQkFBVyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25GLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxvQkFBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSx3QkFBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEUsb0JBQVMsQ0FBQyxHQUFHLENBQUMsNENBQTRDLEVBQUUsd0JBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTNGLHNCQUFzQjtRQUN0QixNQUFNLElBQUEsYUFBSyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQWtCLEVBQUUsT0FBYztRQUMxRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLElBQUksT0FBTyxHQUFhLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxJQUFJLFdBQVcsSUFBSSxJQUFBLHVCQUFVLEVBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sYUFBYSxHQUFRLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEYsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNoQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQTVDRCxtQ0E0Q0MifQ==