This repository has been archived on 2022-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
cic-ussd-e2e/src/builder.js

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 };