@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
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;
};
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==