42 lines
982 B
JavaScript
42 lines
982 B
JavaScript
const crypto = require("crypto");
|
|
|
|
const scenario = require("./scenario");
|
|
const config = require("./config");
|
|
const request = require("./request").request;
|
|
|
|
function builder(scenarioName, scenarioConfig) {
|
|
const scenes = [];
|
|
|
|
const builtScenario = scenario[scenarioName](scenarioConfig);
|
|
const sessionId = crypto.randomBytes(16).toString("hex");
|
|
|
|
for (const scene of builtScenario) {
|
|
scene.sessionId = sessionId;
|
|
Object.assign(scene, config);
|
|
|
|
scenes.push(scene);
|
|
}
|
|
|
|
return scenes;
|
|
}
|
|
|
|
function parseScenario(scenarioString) {
|
|
const parsedScenario = scenarioString.split(" ");
|
|
|
|
return builder(parsedScenario[0], parseScenarioConfig(parsedScenario[1]));
|
|
}
|
|
|
|
function parseScenarioConfig(scenarioConfigString) {
|
|
const configs = scenarioConfigString.split(",");
|
|
const configObject = {};
|
|
|
|
for (const conf of configs) {
|
|
[key, value] = conf.split("=");
|
|
configObject[key] = value;
|
|
}
|
|
|
|
return configObject;
|
|
}
|
|
|
|
module.exports = { parseScenario };
|