UNPKG

@flxbl-io/sfp

Version:

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

131 lines 12.1 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const TestOptions_1 = require("../../core/apextest/TestOptions"); const TriggerApexTests_1 = __importDefault(require("../../core/apextest/TriggerApexTests")); const SfpCommand_1 = __importDefault(require("../../SfpCommand")); const core_1 = require("@salesforce/core"); const sfp_logger_1 = require("@flxbl-io/sfp-logger"); const SfpPackageBuilder_1 = __importDefault(require("../../core/package/SfpPackageBuilder")); const SfpPackage_1 = require("../../core/package/SfpPackage"); const core_2 = require("@oclif/core"); const sfdxflags_1 = require("../../flags/sfdxflags"); const path = require('path'); // Initialize Messages with the current plugin directory core_1.Messages.importMessagesDirectory(__dirname); // Load the specific messages for this file. Messages from @salesforce/command, @salesforce/core, // or any library that is using the messages framework can also be loaded this way. const messages = core_1.Messages.loadMessages('@flxbl-io/sfp', 'trigger_apex_test'); class TriggerApexTest extends SfpCommand_1.default { async execute() { try { let testOptions; let coverageOptions; let outputdir = path.join('.testresults'); if (this.flags.testlevel === TestOptions_1.TestLevel.RunAllTestsInOrg.toString()) { testOptions = new TestOptions_1.RunAllTestsInOrg(this.flags.waittime, outputdir, this.flags.synchronous); } else if (this.flags.testlevel === TestOptions_1.TestLevel.RunAllTestsInPackage.toString()) { if (this.flags.package === null) { throw new Error('Package name must be specified when test level is RunAllTestsInPackage'); } let pkg = await SfpPackageBuilder_1.default.buildPackageFromProjectDirectory(new sfp_logger_1.ConsoleLogger(), null, this.flags.package, { overridePackageTypeWith: SfpPackage_1.PackageType.Source, }); testOptions = new TestOptions_1.RunAllTestsInPackageOptions(pkg, this.flags.waittime, outputdir); } else if (this.flags.testlevel === TestOptions_1.TestLevel.RunApexTestSuite.toString()) { testOptions = new TestOptions_1.RunApexTestSuitesOption(this.flags.waittime, outputdir, this.flags.apextestsuite, this.flags.synchronous); } else if (this.flags.testlevel === TestOptions_1.TestLevel.RunLocalTests.toString()) { testOptions = new TestOptions_1.RunLocalTests(this.flags.waittime, outputdir, this.flags.synchronous); } else if (this.flags.testlevel === TestOptions_1.TestLevel.RunSpecifiedTests.toString()) { testOptions = new TestOptions_1.RunSpecifiedTestsOption(this.flags.waittime, outputdir, this.flags.specifiedtests, this.flags.synchronous); } else { throw new Error('Unimplemented Option, please check the option'); } if ((this.flags.validateindividualclasscoverage || this.flags.validatepackagecoverage) && this.flags.testlevel !== TestOptions_1.TestLevel.RunAllTestsInPackage.toString()) { throw new Error('Code coverage validation is only available for test level RunAllTestsInPackage'); } else { coverageOptions = { isPackageCoverageToBeValidated: this.flags.validatepackagecoverage, isIndividualClassCoverageToBeValidated: this.flags.validateindividualclasscoverage, coverageThreshold: this.flags.coveragepercent, }; } const triggerApexTests = new TriggerApexTests_1.default(this.flags.targetusername, testOptions, coverageOptions, null, null); let result = await triggerApexTests.exec(); if (!result.result) { throw new Error(`Error: ${result.message}`); } else { console.log(`\n ${result.message ? result.message : ''}`); } } catch (err) { console.log('\n'); console.error(err.message); process.exitCode = 1; } } } TriggerApexTest.description = messages.getMessage('commandDescription'); TriggerApexTest.examples = [ `$ sfp apextests:trigger -o scratchorg -l RunLocalTests -s`, `$ sfp apextests:trigger -o scratchorg -l RunAllTestsInPackage -n <mypackage> -c`, ]; TriggerApexTest.flags = { loglevel: sfdxflags_1.loglevel, 'apiversion': sfdxflags_1.orgApiVersionFlagSfdxStyle, 'targetusername': sfdxflags_1.requiredUserNameFlag, testlevel: core_2.Flags.string({ char: 'l', description: messages.getMessage('testLevelFlagDescription'), options: [ 'RunSpecifiedTests', 'RunApexTestSuite', 'RunLocalTests', 'RunAllTestsInOrg', 'RunAllTestsInPackage', ], default: 'RunLocalTests', }), package: core_2.Flags.string({ char: 'n', description: messages.getMessage('packageFlagDescription'), required: false, }), validateindividualclasscoverage: core_2.Flags.boolean({ char: 'c', description: messages.getMessage('validateIndividualClassCoverageFlagDescription'), default: false, }), validatepackagecoverage: core_2.Flags.boolean({ description: messages.getMessage('validatePackageCoverageFlagDescription'), default: false, }), specifiedtests: core_2.Flags.string({ description: messages.getMessage('specifiedTestsFlagDescription'), }), apextestsuite: core_2.Flags.string({ description: messages.getMessage('apexTestSuiteFlagDescription'), }), coveragepercent: core_2.Flags.integer({ char: 'p', description: messages.getMessage('coveragePercentFlagDescription'), default: 75, }), waittime: core_2.Flags.integer({ char: 'w', description: messages.getMessage('waitTimeFlagDescription'), default: 60, }), }; exports.default = TriggerApexTest; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9hcGV4dGVzdHMvdHJpZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlFQVF5QztBQUN6Qyw0RkFBb0U7QUFDcEUsa0VBQTBDO0FBQzFDLDJDQUE0QztBQUc1QyxxREFBcUQ7QUFFckQsNkZBQXFFO0FBQ3JFLDhEQUE0RDtBQUM1RCxzQ0FBb0M7QUFDcEMscURBQW1HO0FBQ25HLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUU3Qix3REFBd0Q7QUFDeEQsZUFBUSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTVDLGlHQUFpRztBQUNqRyxtRkFBbUY7QUFDbkYsTUFBTSxRQUFRLEdBQUcsZUFBUSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUU3RSxNQUFxQixlQUFnQixTQUFRLG9CQUFVO0lBd0Q1QyxLQUFLLENBQUMsT0FBTztRQUNoQixJQUFJLENBQUM7WUFFRCxJQUFJLFdBQXdCLENBQUM7WUFDN0IsSUFBSSxlQUFnQyxDQUFDO1lBQ3JDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFFMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyx1QkFBUyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ2pFLFdBQVcsR0FBRyxJQUFJLDhCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9GLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyx1QkFBUyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7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