@ovotech/genesys-web-messaging-tester-cli
Version:
28 lines (27 loc) • 1.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractScenarios = exports.parseScenarioStep = void 0;
function parseScenarioStep(step) {
if ('say' in step) {
return async (convo) => await convo.sendText(step.say);
}
if ('waitForReplyContaining' in step) {
return async (convo, context) => await convo.waitForResponseWithTextContaining(step.waitForReplyContaining, {
timeoutInSeconds: context.timeoutInSeconds,
});
}
if ('waitForReplyMatching' in step) {
return async (convo, context) => await convo.waitForResponseWithTextMatchingPattern(new RegExp(step.waitForReplyMatching, 'im'), { timeoutInSeconds: context.timeoutInSeconds });
}
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
throw new Error(`Unsupported step ${step}`);
}
exports.parseScenarioStep = parseScenarioStep;
function extractScenarios(testScript, sessionConfig) {
return Object.entries(testScript.scenarios ?? []).map(([scenarioName, actions]) => ({
sessionConfig,
name: scenarioName,
steps: actions.map(parseScenarioStep),
}));
}
exports.extractScenarios = extractScenarios;
;