UNPKG

@flxbl-io/sfp

Version:

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

123 lines 10.4 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 Table = require('cli-table'); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const TableConstants_1 = require("./TableConstants"); class DeployErrorDisplayer { static printMetadataFailedToDeploy(componentFailures, logger) { if (componentFailures === null || componentFailures === undefined) return; let table = new Table({ head: ['Metadata Type', 'API Name', 'Problem Type', 'Problem'], chars: TableConstants_1.ZERO_BORDER_TABLE }); let pushComponentFailureIntoTable = (componentFailure) => { let item = [ componentFailure.componentType, componentFailure.fullName, componentFailure.problemType, componentFailure.problem, ]; table.push(item); }; if (componentFailures instanceof Array) { for (let failure of componentFailures) { pushComponentFailureIntoTable(failure); } } else { let failure = componentFailures; pushComponentFailureIntoTable(failure); } sfp_logger_1.default.log('The following components resulted in failures:', sfp_logger_1.LoggerLevel.ERROR, logger); sfp_logger_1.default.log(table.toString(), sfp_logger_1.LoggerLevel.ERROR, logger); } static displayErrors(response, logger) { sfp_logger_1.default.log(`Gathering Final Deployment Status`, null, logger); if (response.numberComponentErrors == 0) { if (response.details.runTestResult.codeCoverageWarnings) { this.displayCodeCoverageWarnings(response.details.runTestResult.codeCoverageWarnings, logger); return 'Unable to deploy due to unsatisfactory code coverage and/or test failures'; } else return 'Unable to fetch report, Check your org for details'; } else if (response.numberComponentErrors > 0) { this.printMetadataFailedToDeploy(response.details.componentFailures, logger); return response.errorMessage; } else if (response.details.runTestResult) { if (response.details.runTestResult.codeCoverageWarnings) { this.displayCodeCoverageWarnings(response.details.runTestResult.codeCoverageWarnings, logger); } if (response.details.runTestResult.failures) { this.displayTestFailures(response.details.runTestResult.failures, logger); } return 'Unable to deploy due to unsatisfactory code coverage and/or test failures'; } else { return 'Unable to fetch report, Check your org for details'; } } static displayCodeCoverageWarnings(codeCoverageWarnings, logger) { let table = new Table({ head: ['Name', 'Message'], chars: TableConstants_1.ZERO_BORDER_TABLE, }); if (Array.isArray(codeCoverageWarnings)) { codeCoverageWarnings.forEach((coverageWarningElement) => { table.push([coverageWarningElement['name'], coverageWarningElement.message]); }); } else { table.push([codeCoverageWarnings['name'], codeCoverageWarnings.message]); } if (table.length >= 1) { sfp_logger_1.default.log('Unable to deploy due to unsatisfactory code coverage, Check the following classes:', sfp_logger_1.LoggerLevel.WARN, logger); sfp_logger_1.default.log(table.toString(), sfp_logger_1.LoggerLevel.WARN, logger); } } static displayTestFailures(testFailures, logger) { let table = new Table({ head: ['Test Name', 'Method Name', 'Message'], chars: TableConstants_1.ZERO_BORDER_TABLE }); if (Array.isArray(testFailures)) { testFailures.forEach((elem) => { table.push([elem.name, elem.methodName, elem.message]); }); } else { table.push([testFailures.name, testFailures.methodName, testFailures.message]); } if (table.length > 1) { sfp_logger_1.default.log('Unable to deploy due to test failures:', sfp_logger_1.LoggerLevel.WARN, logger); sfp_logger_1.default.log(table.toString(), sfp_logger_1.LoggerLevel.WARN, logger); } } } exports.default = DeployErrorDisplayer; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVwbG95RXJyb3JEaXNwbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9kaXNwbGF5L0RlcGxveUVycm9yRGlzcGxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFFbkMsbUVBQXNFO0FBQ3RFLHFEQUFxRDtBQUVyRCxNQUFxQixvQkFBb0I7SUFDN0IsTUFBTSxDQUFDLDJCQUEyQixDQUFDLGlCQUFrRCxFQUFFLE1BQWM7UUFDekcsSUFBSSxpQkFBaUIsS0FBSyxJQUFJLElBQUksaUJBQWlCLEtBQUssU0FBUztZQUFFLE9BQU87UUFFMUUsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUM7WUFDbEIsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDO1lBQzlELEtBQUssRUFBRSxrQ0FBaUI7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSw2QkFBNkIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDckQsSUFBSSxJQUFJLEdBQUc7Z0JBQ1AsZ0JBQWdCLENBQUMsYUFBYTtnQkFDOUIsZ0JBQWdCLENBQUMsUUFBUTtnQkFDekIsZ0JBQWdCLENBQUMsV0FBVztnQkFDNUIsZ0JBQWdCLENBQUMsT0FBTzthQUMzQixDQUFDO1lBQ0YsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixJQUFJLGlCQUFpQixZQUFZLEtBQUssRUFBRSxDQUFDO1lBQ3JDLEtBQUssSUFBSSxPQUFPLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEMsNkJBQTZCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxPQUFPLEdBQUcsaUJB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