@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
JavaScript
"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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