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/scenarioBuilder.js

47 lines
1.0 KiB
JavaScript

const crypto = require("crypto");
const scenario = require("./scenario");
const config = require("./config");
function builder(scenarioName, scenarioConfig, scenarioPhone) {
const scenes = [];
const builtScenario = scenario[scenarioName](scenarioConfig);
const sessionId = crypto.randomBytes(16).toString("hex");
for (const scene of builtScenario) {
scene.sessionId = sessionId;
scene.ussdPhone = scenarioPhone;
Object.assign(scene, config);
scenes.push(scene);
}
return scenes;
}
function parseScenario(scenarioPhone, scenarioString) {
const [scenarioName, scenarioConfig] = scenarioString.split(" ");
return builder(
scenarioName,
parseScenarioConfig(scenarioConfig),
scenarioPhone
);
}
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 };