@gatling.io/cli
Version:
Gatling JS is a JavaScript/TypeScript interface for the [Gatling load testing tool](https://gatling.io/).
87 lines (86 loc) • 4.4 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const options_1 = require("./options");
const simulations_1 = require("../simulations");
const dependencies_1 = require("../dependencies");
const bundle_1 = require("../bundle");
const enterprise_1 = require("../enterprise");
exports.default = (program) => {
program
.command("enterprise-start")
.description("Start a simulation deployed with `enterprise-deploy`")
.addOption(options_1.sourcesFolderOption)
.addOption(options_1.resourcesFolderOption)
.addOption(options_1.bundleFileOption)
.addOption(options_1.resultsFolderOption)
.addOption(options_1.postmanOption)
.addOption(options_1.typescriptOption)
.addOption(options_1.gatlingHomeOption)
// Base
.addOption(options_1.apiUrlOption)
.addOption(options_1.webAppUrlOption)
.addOption(options_1.apiTokenOption)
// Plugin configuration
.addOption(options_1.controlPlaneUrlOption)
.addOption(options_1.trustStoreOption)
.addOption(options_1.trustStorePasswordOption)
.addOption(options_1.nonInteractiveOption)
// Descriptor file
.addOption(options_1.packageDescriptorFilenameOption)
// Deployment info
.addOption(options_1.packageFileOption)
// Start
.addOption(options_1.enterpriseSimulationOption)
.addOption(options_1.runTitleOption)
.addOption(options_1.runDescriptionOption)
.addOption(options_1.waitForRunEndOption)
.action(async (options) => {
const sourcesFolder = (0, options_1.sourcesFolderOptionValue)(options);
const simulations = await (0, simulations_1.findSimulations)(sourcesFolder);
const postman = (0, options_1.postmanOptionValueWithDefaults)(options);
const typescript = (0, options_1.typescriptOptionValueWithDefaults)(options, simulations);
const resourcesFolder = (0, options_1.resourcesFolderOptionValue)(options);
const bundleFile = (0, options_1.bundleFileOptionValue)(options);
const resultsFolder = (0, options_1.resultsFolderOptionValue)(options);
const gatlingHome = (0, options_1.gatlingHomeOptionValueWithDefaults)(options);
const apiUrl = (0, options_1.apiUrlOptionValue)(options);
const webAppUrl = (0, options_1.webAppUrlOptionValue)(options);
const apiToken = (0, options_1.apiTokenOptionValue)(options);
const controlPlaneUrl = (0, options_1.controlPlaneUrlOptionValue)(options);
const trustStore = (0, options_1.trustStoreOptionValue)(options);
const trustStorePassword = (0, options_1.trustStorePasswordOptionValue)(options);
const nonInteractive = (0, options_1.nonInteractiveOptionValue)(options);
const packageDescriptorFilename = (0, options_1.packageDescriptorFilenameOptionValue)(options);
const packageFile = (0, options_1.packageFileOptionValue)(options);
const enterpriseSimulation = (0, options_1.enterpriseSimulationOptionValue)(options);
const runTitle = (0, options_1.runTitleOptionValue)(options);
const runDescription = (0, options_1.runDescriptionOptionValue)(options);
const waitForRunEnd = (0, options_1.waitForRunEndOptionValue)(options);
if ((0, options_1.nonInteractiveOptionValue)(options) && enterpriseSimulation === undefined) {
throw new Error(`No simulation specified when using non-interactive mode`);
}
const { graalvmHome, jvmClasspath } = await (0, dependencies_1.resolveBundle)({ gatlingHome });
await (0, bundle_1.bundle)({ sourcesFolder, bundleFile, postman, typescript, simulations });
await (0, enterprise_1.enterprisePackage)({ bundleFile, resourcesFolder, packageFile, postman, simulations });
await (0, enterprise_1.enterpriseStart)({
graalvmHome,
jvmClasspath,
bundleFile,
resourcesFolder,
resultsFolder,
apiUrl,
webAppUrl,
apiToken,
controlPlaneUrl,
trustStore,
trustStorePassword,
nonInteractive,
packageDescriptorFilename,
packageFile,
enterpriseSimulation,
runTitle,
runDescription,
waitForRunEnd
});
});
};