@zohodesk/testinglibrary 0.1.8-stb-bdd-v26 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +21 -18
- package/.eslintrc.js +31 -31
- package/.prettierrc +5 -5
- package/README.md +17 -17
- package/bin/cli.js +2 -2
- package/build/bdd-framework/cli/commands/env.js +42 -0
- package/build/bdd-framework/cli/commands/export.js +47 -0
- package/build/bdd-framework/cli/commands/test.js +64 -0
- package/build/bdd-framework/cli/index.js +11 -0
- package/build/bdd-framework/cli/options.js +19 -0
- package/build/bdd-framework/cli/worker.js +13 -0
- package/build/bdd-framework/config/configDir.js +35 -0
- package/build/bdd-framework/config/enrichReporterData.js +23 -0
- package/build/bdd-framework/config/env.js +50 -0
- package/build/bdd-framework/config/index.js +94 -0
- package/build/bdd-framework/config/lang.js +14 -0
- package/build/bdd-framework/cucumber/buildStepDefinition.js +43 -0
- package/build/bdd-framework/cucumber/createTestStep.js +43 -0
- package/build/bdd-framework/cucumber/formatter/EventDataCollector.js +126 -0
- package/build/bdd-framework/cucumber/formatter/GherkinDocumentParser.js +72 -0
- package/build/bdd-framework/cucumber/formatter/PickleParser.js +25 -0
- package/build/bdd-framework/cucumber/formatter/durationHelpers.js +13 -0
- package/build/bdd-framework/cucumber/formatter/getColorFns.js +57 -0
- package/build/bdd-framework/cucumber/formatter/index.js +16 -0
- package/build/bdd-framework/cucumber/formatter/locationHelpers.js +16 -0
- package/build/bdd-framework/cucumber/loadConfig.js +17 -0
- package/build/bdd-framework/cucumber/loadFeatures.js +70 -0
- package/build/bdd-framework/cucumber/loadSnippetBuilder.js +20 -0
- package/build/bdd-framework/cucumber/loadSteps.js +47 -0
- package/build/bdd-framework/cucumber/resolveFeaturePaths.js +62 -0
- package/build/bdd-framework/cucumber/stepArguments.js +21 -0
- package/build/bdd-framework/cucumber/types.js +5 -0
- package/build/bdd-framework/cucumber/valueChecker.js +23 -0
- package/build/bdd-framework/decorators.js +18 -0
- package/build/bdd-framework/gen/fixtures.js +48 -0
- package/build/bdd-framework/gen/formatter.js +123 -0
- package/build/bdd-framework/gen/i18n.js +39 -0
- package/build/bdd-framework/gen/index.js +185 -0
- package/build/bdd-framework/gen/testFile.js +465 -0
- package/build/bdd-framework/gen/testMeta.js +60 -0
- package/build/bdd-framework/gen/testNode.js +60 -0
- package/build/bdd-framework/gen/testPoms.js +133 -0
- package/build/bdd-framework/hooks/scenario.js +130 -0
- package/build/bdd-framework/hooks/worker.js +89 -0
- package/build/bdd-framework/index.js +52 -0
- package/build/bdd-framework/playwright/fixtureParameterNames.js +93 -0
- package/build/bdd-framework/playwright/getLocationInFile.js +79 -0
- package/build/bdd-framework/playwright/loadConfig.js +42 -0
- package/build/bdd-framework/playwright/loadUtils.js +33 -0
- package/build/bdd-framework/playwright/testTypeImpl.js +61 -0
- package/build/bdd-framework/playwright/transform.js +88 -0
- package/build/bdd-framework/playwright/types.js +5 -0
- package/build/bdd-framework/playwright/utils.js +34 -0
- package/build/bdd-framework/reporter/cucumber/base.js +57 -0
- package/build/bdd-framework/reporter/cucumber/custom.js +73 -0
- package/build/bdd-framework/reporter/cucumber/helper.js +12 -0
- package/build/bdd-framework/reporter/cucumber/html.js +35 -0
- package/build/bdd-framework/reporter/cucumber/index.js +74 -0
- package/build/bdd-framework/reporter/cucumber/json.js +312 -0
- package/build/bdd-framework/reporter/cucumber/junit.js +205 -0
- package/build/bdd-framework/reporter/cucumber/message.js +20 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/AttachmentMapper.js +64 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Builder.js +196 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocument.js +43 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocumentClone.js +52 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocuments.js +105 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Hook.js +70 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Meta.js +45 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Pickles.js +27 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/Projects.js +38 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCase.js +128 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRun.js +126 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRunHooks.js +102 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepAttachments.js +50 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepRun.js +88 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/index.js +30 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/pwUtils.js +51 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/timing.js +35 -0
- package/build/bdd-framework/reporter/cucumber/messagesBuilder/types.js +5 -0
- package/build/bdd-framework/run/StepInvoker.js +68 -0
- package/build/bdd-framework/run/bddDataAttachment.js +46 -0
- package/build/bdd-framework/run/bddFixtures.js +191 -0
- package/build/bdd-framework/run/bddWorld.js +79 -0
- package/build/bdd-framework/run/bddWorldInternal.js +15 -0
- package/build/bdd-framework/snippets/index.js +132 -0
- package/build/bdd-framework/snippets/snippetSyntax.js +43 -0
- package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +26 -0
- package/build/bdd-framework/snippets/snippetSyntaxTs.js +18 -0
- package/build/bdd-framework/stepDefinitions/createBdd.js +66 -0
- package/build/bdd-framework/stepDefinitions/decorators/class.js +68 -0
- package/build/bdd-framework/stepDefinitions/decorators/steps.js +99 -0
- package/build/bdd-framework/stepDefinitions/defineStep.js +62 -0
- package/build/bdd-framework/stepDefinitions/stepConfig.js +24 -0
- package/build/bdd-framework/utils/AutofillMap.js +20 -0
- package/build/bdd-framework/utils/exit.js +62 -0
- package/build/bdd-framework/utils/index.js +93 -0
- package/build/bdd-framework/utils/jsStringWrap.js +44 -0
- package/build/bdd-framework/utils/logger.js +30 -0
- package/build/bdd-framework/utils/stripAnsiEscapes.js +20 -0
- package/build/core/playwright/builtInFixtures/addTags.js +1 -1
- package/build/core/playwright/builtInFixtures/context.js +18 -1
- package/build/core/playwright/builtInFixtures/i18N.js +33 -0
- package/build/core/playwright/builtInFixtures/index.js +19 -7
- package/build/core/playwright/builtInFixtures/page.js +69 -39
- package/build/core/playwright/builtInFixtures/unauthenticatedPage.js +18 -0
- package/build/core/playwright/clear-caches.js +19 -8
- package/build/core/playwright/codegen.js +4 -4
- package/build/core/playwright/constants/browserTypes.js +12 -0
- package/build/core/playwright/custom-commands.js +1 -1
- package/build/core/playwright/env-initializer.js +10 -6
- package/build/core/playwright/helpers/auth/accountLogin.js +18 -0
- package/build/core/playwright/helpers/auth/checkAuthCookies.js +47 -0
- package/build/core/playwright/helpers/auth/getUrlOrigin.js +13 -0
- package/build/core/playwright/helpers/auth/getUsers.js +72 -0
- package/build/core/playwright/helpers/auth/index.js +58 -0
- package/build/core/playwright/helpers/auth/loginSteps.js +36 -0
- package/build/core/playwright/helpers/configFileNameProvider.js +17 -0
- package/build/core/playwright/helpers/getUserFixtures.js +23 -0
- package/build/core/playwright/helpers/mergeObjects.js +13 -0
- package/build/core/playwright/helpers/parseUserArgs.js +11 -0
- package/build/core/playwright/index.js +69 -15
- package/build/core/playwright/readConfigFile.js +50 -39
- package/build/core/playwright/report-generator.js +7 -7
- package/build/core/playwright/setup/config-creator.js +15 -16
- package/build/core/playwright/setup/config-utils.js +60 -26
- package/build/core/playwright/setup/custom-reporter.js +3 -2
- package/build/core/playwright/tag-processor.js +12 -23
- package/build/core/playwright/test-runner.js +49 -63
- package/build/core/playwright/types.js +43 -0
- package/build/decorators.d.ts +1 -1
- package/build/decorators.js +16 -2
- package/build/index.d.ts +79 -12
- package/build/index.js +51 -9
- package/build/lib/cli.js +12 -3
- package/build/lib/post-install.js +18 -10
- package/build/parser/sample.feature +34 -34
- package/build/parser/sample.spec.js +18 -18
- package/build/setup-folder-structure/helper.js +3 -0
- package/build/setup-folder-structure/reportEnhancement/addonScript.html +24 -24
- package/build/setup-folder-structure/samples/auth-setup-sample.js +72 -72
- package/build/setup-folder-structure/samples/authUsers-sample.json +8 -8
- package/build/setup-folder-structure/samples/env-config-sample.json +20 -20
- package/build/setup-folder-structure/samples/git-ignore.sample.js +36 -36
- package/build/setup-folder-structure/samples/uat-config-sample.js +44 -44
- package/build/utils/cliArgsToObject.js +30 -26
- package/build/utils/fileUtils.js +4 -19
- package/build/utils/getFilePath.js +1 -2
- package/build/utils/rootPath.js +16 -9
- package/changelog.md +144 -131
- package/jest.config.js +63 -63
- package/npm-shrinkwrap.json +6475 -5994
- package/package.json +57 -56
- package/playwright.config.js +112 -112
- package/build/bdd-poc/config/pathConfig.js +0 -22
- package/build/bdd-poc/core-runner/exportMethods.js +0 -22
- package/build/bdd-poc/core-runner/main.js +0 -15
- package/build/bdd-poc/core-runner/stepDefinitions.js +0 -157
- package/build/bdd-poc/core-runner/stepRunner.js +0 -25
- package/build/bdd-poc/errors/throwError.js +0 -23
- package/build/bdd-poc/index.js +0 -26
- package/build/bdd-poc/test/cucumber/featureFileParer.js +0 -84
- package/build/bdd-poc/test/cucumber/parserCucumber.js +0 -15
- package/build/bdd-poc/test/stepGenerate/extractTestInputs.js +0 -65
- package/build/bdd-poc/test/stepGenerate/parserSteps.js +0 -81
- package/build/bdd-poc/test/stepGenerate/stepFileGenerate.js +0 -40
- package/build/bdd-poc/test/stepGenerate/stepsnippets.js +0 -61
- package/build/bdd-poc/test/tagsHandle.js +0 -70
- package/build/bdd-poc/test/testData.js +0 -125
- package/build/bdd-poc/test/testStructure.js +0 -92
- package/build/bdd-poc/utils/stringManipulation.js +0 -26
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.parseFeature = parseFeature;
|
|
8
|
-
var _parserCucumber = _interopRequireDefault(require("./parserCucumber"));
|
|
9
|
-
function parseFeature(featureFileContent) {
|
|
10
|
-
var _gherkinDocument$feat;
|
|
11
|
-
var gherkinDocument = (0, _parserCucumber.default)(featureFileContent);
|
|
12
|
-
var currentFeature = {
|
|
13
|
-
feature: "",
|
|
14
|
-
featureTags: [],
|
|
15
|
-
scenarios: [],
|
|
16
|
-
featureBackGround: []
|
|
17
|
-
};
|
|
18
|
-
var isBackgroundExist;
|
|
19
|
-
currentFeature.feature = gherkinDocument.feature.name;
|
|
20
|
-
currentFeature.featureTags = (_gherkinDocument$feat = gherkinDocument.feature) === null || _gherkinDocument$feat === void 0 ? void 0 : _gherkinDocument$feat.tags.map(tag => tag.name);
|
|
21
|
-
gherkinDocument.feature.children.forEach($scenario => {
|
|
22
|
-
var _$scenario$scenario, _$scenario$scenario2, _$scenario$scenario3, _$scenario$scenario4;
|
|
23
|
-
var scenarioSteps = {
|
|
24
|
-
scenariodescription: "",
|
|
25
|
-
steps: [],
|
|
26
|
-
tablebody: false,
|
|
27
|
-
tableheader: false,
|
|
28
|
-
examples: [],
|
|
29
|
-
scenarioTags: [],
|
|
30
|
-
background: []
|
|
31
|
-
};
|
|
32
|
-
scenarioSteps.scenariodescription = (_$scenario$scenario = $scenario.scenario) === null || _$scenario$scenario === void 0 ? void 0 : _$scenario$scenario.name;
|
|
33
|
-
|
|
34
|
-
/** If Feature Has Background it will Assign to Scenario Background of Feature */
|
|
35
|
-
if ($scenario !== null && $scenario !== void 0 && $scenario.background) {
|
|
36
|
-
isBackgroundExist = $scenario.background.steps.map(element => {
|
|
37
|
-
return {
|
|
38
|
-
stepDescription: element.text,
|
|
39
|
-
keyword: element.keyword
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
(_$scenario$scenario2 = $scenario.scenario) === null || _$scenario$scenario2 === void 0 || _$scenario$scenario2.examples.map($example => {
|
|
45
|
-
var _$example$tableHeader;
|
|
46
|
-
scenarioSteps.tablebody = $example === null || $example === void 0 ? void 0 : $example.tableBody.map(exampleBody => {
|
|
47
|
-
return exampleBody === null || exampleBody === void 0 ? void 0 : exampleBody.cells.map(example => example.value);
|
|
48
|
-
});
|
|
49
|
-
scenarioSteps.tableheader = $example === null || $example === void 0 || (_$example$tableHeader = $example.tableHeader) === null || _$example$tableHeader === void 0 ? void 0 : _$example$tableHeader.cells.map(exampleHead => {
|
|
50
|
-
return exampleHead.value;
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
if (scenarioSteps.tablebody && scenarioSteps.tableheader) {
|
|
54
|
-
scenarioSteps.examples = testDataExtraction(scenarioSteps.tableheader, scenarioSteps.tablebody);
|
|
55
|
-
} else {
|
|
56
|
-
scenarioSteps.examples = false;
|
|
57
|
-
}
|
|
58
|
-
scenarioSteps.scenarioTags = (_$scenario$scenario3 = $scenario.scenario) === null || _$scenario$scenario3 === void 0 ? void 0 : _$scenario$scenario3.tags.map(tag => tag.name);
|
|
59
|
-
scenarioSteps.steps = $scenario === null || $scenario === void 0 || (_$scenario$scenario4 = $scenario.scenario) === null || _$scenario$scenario4 === void 0 ? void 0 : _$scenario$scenario4.steps.map(step => {
|
|
60
|
-
return {
|
|
61
|
-
stepDescription: step.text,
|
|
62
|
-
keyword: step.keyword
|
|
63
|
-
};
|
|
64
|
-
});
|
|
65
|
-
scenarioSteps.background = isBackgroundExist || [];
|
|
66
|
-
currentFeature.scenarios.push(scenarioSteps);
|
|
67
|
-
});
|
|
68
|
-
/** Background is one of Scenario in Scenario Array. That The First Scenario is Background in Feature*/
|
|
69
|
-
currentFeature.featureBackGround = currentFeature.scenarios[0].background;
|
|
70
|
-
return currentFeature;
|
|
71
|
-
}
|
|
72
|
-
function testDataExtraction(tableHeader, tableBody) {
|
|
73
|
-
const result = [];
|
|
74
|
-
if (tableBody && tableHeader) {
|
|
75
|
-
tableBody.forEach(tableCells => {
|
|
76
|
-
const InputObject = {};
|
|
77
|
-
tableCells.forEach((item, index) => {
|
|
78
|
-
InputObject[`<${tableHeader[index]}>`] = item;
|
|
79
|
-
});
|
|
80
|
-
result.push(InputObject);
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return result;
|
|
84
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = CucumberParser;
|
|
7
|
-
var _gherkin = require("@cucumber/gherkin");
|
|
8
|
-
var _messages = require("@cucumber/messages");
|
|
9
|
-
function CucumberParser(content) {
|
|
10
|
-
var uuidFn = _messages.IdGenerator.uuid();
|
|
11
|
-
var builder = new _gherkin.AstBuilder(uuidFn);
|
|
12
|
-
var matcher = new _gherkin.GherkinClassicTokenMatcher();
|
|
13
|
-
var parser = new _gherkin.Parser(builder, matcher);
|
|
14
|
-
return parser.parse(content);
|
|
15
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.createStepDataMap = createStepDataMap;
|
|
8
|
-
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
|
9
|
-
var _fileUtils = require("../../../utils/fileUtils");
|
|
10
|
-
var _path = _interopRequireDefault(require("path"));
|
|
11
|
-
var _pathConfig = require("../../config/pathConfig");
|
|
12
|
-
var _throwError = require("../../errors/throwError");
|
|
13
|
-
// globalThis.testDataMap = new Map();
|
|
14
|
-
function createStepDataMap() {
|
|
15
|
-
const stepFilePath = (0, _pathConfig.getStepFilePath)();
|
|
16
|
-
const processedSpecFile = [];
|
|
17
|
-
return new Promise(resolve => {
|
|
18
|
-
_fastGlob.default.globSync(stepFilePath, {
|
|
19
|
-
dot: true,
|
|
20
|
-
cwd: process.cwd()
|
|
21
|
-
}).forEach(filePath => {
|
|
22
|
-
processedSpecFile.push(extractPageFixtures(filePath));
|
|
23
|
-
});
|
|
24
|
-
Promise.all(processedSpecFile);
|
|
25
|
-
resolve(testDataMap);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function extractPageFixtures(filePath) {
|
|
29
|
-
const code = (0, _fileUtils.readFileContents)(_path.default.resolve(process.cwd(), filePath), 'utf-8');
|
|
30
|
-
code.split('\n').forEach(step => {
|
|
31
|
-
const trimmedStep = step.trim();
|
|
32
|
-
if (trimmedStep.startsWith('Given') || trimmedStep.startsWith('When') || trimmedStep.startsWith('Then') || trimmedStep.startsWith('And') || trimmedStep.startsWith('Step')) {
|
|
33
|
-
var sortedSpecInput = extractInputFrmStep(trimmedStep, filePath);
|
|
34
|
-
testDataMap.set(extractDescriptionFrmStep(trimmedStep), sortedSpecInput);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
function extractInputFrmStep(trimmedStep, filePath) {
|
|
39
|
-
var _inputNames$split;
|
|
40
|
-
var toRemovePattern = trimmedStep.match(/async\s*\(([^)]*)\)/)[1].match(/{(.*?)}/);
|
|
41
|
-
var inputNames = trimmedStep.match(/async\s*\(([^)]*)\)/)[1].replace(toRemovePattern[0], "$null") || [];
|
|
42
|
-
var filteredInputs = (_inputNames$split = inputNames.split(',')) === null || _inputNames$split === void 0 ? void 0 : _inputNames$split.slice(1);
|
|
43
|
-
if (filteredInputs.length) {
|
|
44
|
-
filteredInputs = filteredInputs.map(input => `"${input}"`);
|
|
45
|
-
}
|
|
46
|
-
try {
|
|
47
|
-
return {
|
|
48
|
-
stepPageFixtureName: trimmedStep.split(' ').slice(1).join('').match(/\((.*?)\)/)[1].match(/\{(.*?)\}/g).pop() || [false].pop(),
|
|
49
|
-
stepInputKey: filteredInputs
|
|
50
|
-
};
|
|
51
|
-
} catch (error) {
|
|
52
|
-
// Logger.log(Logger.FAILURE_TYPE,`${filePath} - Steps Has MisMatched Pattern`)
|
|
53
|
-
(0, _throwError.throwProperStepImplementError)(filePath);
|
|
54
|
-
process.exit(0);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function extractDescriptionFrmStep(trimmedStep) {
|
|
58
|
-
var refactoredDescription;
|
|
59
|
-
if (trimmedStep.match(/\((.*?)\)/g).pop().split('').indexOf(`'`) === 1) {
|
|
60
|
-
refactoredDescription = trimmedStep.replace(new RegExp(`'`, 'g'), `;`).match(/;(.*?);/).pop().replace(new RegExp(';', 'g'), ' ').trim();
|
|
61
|
-
} else {
|
|
62
|
-
refactoredDescription = trimmedStep.replace(new RegExp(`"`, 'g'), `;`).match(/;(.*?);/).pop().replace(new RegExp(';', 'g'), ' ').trim();
|
|
63
|
-
}
|
|
64
|
-
return refactoredDescription;
|
|
65
|
-
}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.traverseASTstep = traverseASTstep;
|
|
8
|
-
var _acorn = require("acorn");
|
|
9
|
-
var _fileUtils = require("../../../utils/fileUtils");
|
|
10
|
-
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
|
11
|
-
var _pathConfig = require("../../config/pathConfig");
|
|
12
|
-
globalThis.testDataMap = new Map();
|
|
13
|
-
async function extractFixtureFrmNode(node) {
|
|
14
|
-
var stepText;
|
|
15
|
-
return await new Promise(resolve => {
|
|
16
|
-
if ((node === null || node === void 0 ? void 0 : node.type) == 'ExpressionStatement' || (node === null || node === void 0 ? void 0 : node.type) == 'CallExpression' || (node === null || node === void 0 ? void 0 : node.type) == 'ArrowFunctionExpression') {
|
|
17
|
-
extractFixtureFrmNode(node.expression);
|
|
18
|
-
}
|
|
19
|
-
if ((node === null || node === void 0 ? void 0 : node.type) == 'CallExpression') {
|
|
20
|
-
if (node.arguments[0].type == 'Literal') {
|
|
21
|
-
stepText = node.arguments[0].raw;
|
|
22
|
-
}
|
|
23
|
-
if (node.arguments[1].type == 'ArrowFunctionExpression') {
|
|
24
|
-
let callbackInputs = [];
|
|
25
|
-
var fixtures;
|
|
26
|
-
node.arguments[1].params.forEach(input => {
|
|
27
|
-
if (input.type == 'ObjectPattern') {
|
|
28
|
-
fixtures = getPageFixture(input.properties);
|
|
29
|
-
if (fixtures.includes('page')) {
|
|
30
|
-
fixtures.push('page');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (input.type == 'Identifier') {
|
|
34
|
-
callbackInputs.push(input.name);
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
testDataMap.set(stepText, {
|
|
38
|
-
stepPageFixtureName: combineAllFixture(fixtures),
|
|
39
|
-
stepInputKey: callbackInputs.map(element => `"${element}"`)
|
|
40
|
-
});
|
|
41
|
-
resolve();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
function combineAllFixture(fixturesArray) {
|
|
47
|
-
if (!fixturesArray.includes('page')) {
|
|
48
|
-
fixturesArray.push('page');
|
|
49
|
-
}
|
|
50
|
-
if (fixturesArray.length === 1) {
|
|
51
|
-
return `{${fixturesArray}}`;
|
|
52
|
-
}
|
|
53
|
-
const lastFixture = fixturesArray.pop();
|
|
54
|
-
const allFixture = fixturesArray.join(',');
|
|
55
|
-
return `{${allFixture}${lastFixture}}`;
|
|
56
|
-
}
|
|
57
|
-
function traverseASTstep() {
|
|
58
|
-
var $promise = [];
|
|
59
|
-
_fastGlob.default.globSync((0, _pathConfig.getStepFilePath)(), {
|
|
60
|
-
dot: true,
|
|
61
|
-
cwd: process.cwd()
|
|
62
|
-
}).forEach(filePath => {
|
|
63
|
-
$promise.push(nodeAST((0, _fileUtils.readFileContents)(filePath)));
|
|
64
|
-
});
|
|
65
|
-
Promise.all($promise);
|
|
66
|
-
}
|
|
67
|
-
function nodeAST(stepContent) {
|
|
68
|
-
const options = {
|
|
69
|
-
ecmaVersion: 2020
|
|
70
|
-
};
|
|
71
|
-
const $node = (0, _acorn.parse)(stepContent, options).body;
|
|
72
|
-
$node.forEach(node => {
|
|
73
|
-
extractFixtureFrmNode(node);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
function getPageFixture(fixtureNode) {
|
|
77
|
-
return fixtureNode.map($element => {
|
|
78
|
-
var _$element$key;
|
|
79
|
-
return ($element === null || $element === void 0 || (_$element$key = $element.key) === null || _$element$key === void 0 ? void 0 : _$element$key.name) || 'page';
|
|
80
|
-
});
|
|
81
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.generateSpecFiles = generateSpecFiles;
|
|
8
|
-
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
|
9
|
-
var _path = _interopRequireDefault(require("path"));
|
|
10
|
-
var _featureFileParer = require("../cucumber/featureFileParer");
|
|
11
|
-
var _testStructure = require("../testStructure");
|
|
12
|
-
var _fileUtils = require("../../../utils/fileUtils");
|
|
13
|
-
var _pathConfig = require("../../config/pathConfig");
|
|
14
|
-
var _parserSteps = require("./parserSteps");
|
|
15
|
-
// import { createStepDataMap } from './extractTestInputs';
|
|
16
|
-
|
|
17
|
-
function stepFileCreation(parsedFeatureContent, stepFilename, featureFilePath) {
|
|
18
|
-
const stepsFilePath = _path.default.resolve(process.cwd(), 'uat', '.feature-gen', stepFilename);
|
|
19
|
-
const stepsSnippets = (0, _testStructure.testSnippet)(parsedFeatureContent, featureFilePath);
|
|
20
|
-
(0, _fileUtils.writeFileContents)(stepsFilePath, stepsSnippets);
|
|
21
|
-
}
|
|
22
|
-
async function generateSpecFiles() {
|
|
23
|
-
await (0, _parserSteps.traverseASTstep)();
|
|
24
|
-
const featureFilePattern = (0, _pathConfig.getFeatureFilePath)();
|
|
25
|
-
const featureFileFolderPath = _path.default.resolve(process.cwd(), 'uat', '.feature-gen');
|
|
26
|
-
if (!(0, _fileUtils.checkIfFileExists)(featureFileFolderPath)) {
|
|
27
|
-
(0, _fileUtils.createFolderSync)(featureFileFolderPath, {
|
|
28
|
-
recursive: true
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
_fastGlob.default.globSync(featureFilePattern, {
|
|
32
|
-
dot: true,
|
|
33
|
-
cwd: process.cwd()
|
|
34
|
-
}).forEach(filePath => {
|
|
35
|
-
const featurefilePath = _path.default.resolve(process.cwd(), filePath);
|
|
36
|
-
const parsedFeatureContent = (0, _featureFileParer.parseFeature)((0, _fileUtils.readFileContents)(featurefilePath, 'utf-8'));
|
|
37
|
-
const fileName = _path.default.basename(filePath).replace('.feature', '.spec.js');
|
|
38
|
-
stepFileCreation(parsedFeatureContent, fileName, filePath);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.testCase = testCase;
|
|
7
|
-
exports.testFile = testFile;
|
|
8
|
-
exports.testStep = testStep;
|
|
9
|
-
exports.testSuite = testSuite;
|
|
10
|
-
const TESTING_LIBRARY = '@zohodesk/testinglibrary';
|
|
11
|
-
function stepReportHandle(Steps, Example) {
|
|
12
|
-
var _steps = [...Steps];
|
|
13
|
-
var resultSteps;
|
|
14
|
-
const medium = Math.random();
|
|
15
|
-
resultSteps = _steps.join(medium);
|
|
16
|
-
Object.keys(Example).forEach(keys => {
|
|
17
|
-
const newRegex = new RegExp(keys, 'g');
|
|
18
|
-
resultSteps = resultSteps.replace(newRegex, Example[keys]);
|
|
19
|
-
});
|
|
20
|
-
return [...resultSteps.split(medium)];
|
|
21
|
-
}
|
|
22
|
-
function testStep(keyword, description, pageFixtureUsed_Step, testData, stepDescription, options) {
|
|
23
|
-
return `await test.step('${keyword.trim()}:${stepDescription.replace(new RegExp(`'`, 'g'), " ")}',async() => {
|
|
24
|
-
await $${keyword}("${description}")(${pageFixtureUsed_Step},${testData})
|
|
25
|
-
})`;
|
|
26
|
-
}
|
|
27
|
-
function testSuite(description, scenariotestBlock, tags, options = null) {
|
|
28
|
-
return `\ntest.describe("${description.replace(new RegExp('"', 'g'), '')}${tags.join(" ")}", () => {
|
|
29
|
-
${scenariotestBlock}
|
|
30
|
-
})`;
|
|
31
|
-
}
|
|
32
|
-
function testCase(steps, examples, description, pageFixtures, tags, option) {
|
|
33
|
-
if (examples.length >= 1) {
|
|
34
|
-
const exmapleScenario = examples.map(($ele, index) => {
|
|
35
|
-
var exampleDescription = Object.values($ele).map(val => {
|
|
36
|
-
return val.concat(" ");
|
|
37
|
-
});
|
|
38
|
-
let avoidRepetitionDescription = `Example : ${index + 1} - `.concat(exampleDescription.join(''));
|
|
39
|
-
return testBlock(avoidRepetitionDescription, stepReportHandle(steps, examples[index]), pageFixtures);
|
|
40
|
-
});
|
|
41
|
-
return testSuite(description, exmapleScenario.join('\n'), tags);
|
|
42
|
-
}
|
|
43
|
-
return testSuite(`Title: ${description}`, testBlock(description, steps, pageFixtures), tags);
|
|
44
|
-
}
|
|
45
|
-
function testBlock(description, steps, pageFixtures) {
|
|
46
|
-
return `\ntest("${description}", async({${pageFixtures.join(',')}}) => {
|
|
47
|
-
${steps.join(`\n\t`)}
|
|
48
|
-
})`;
|
|
49
|
-
}
|
|
50
|
-
function testFile(testCase, relativeFilePath, $tags = " ", options = null) {
|
|
51
|
-
return ` // ${relativeFilePath}
|
|
52
|
-
import { test, createNativeBDD } from "${TESTING_LIBRARY}";
|
|
53
|
-
const {$Given,$When,$Then,$And} = createNativeBDD()
|
|
54
|
-
test.use({
|
|
55
|
-
$test: ({}, use) => use(test),
|
|
56
|
-
$tags: ({}, use, testInfo) => use(${JSON.stringify($tags)}
|
|
57
|
-
[testInfo.titlePath.slice(2).join("|")] || [])
|
|
58
|
-
})
|
|
59
|
-
${testCase.join('')}
|
|
60
|
-
`;
|
|
61
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
// const editionOrder = ['Free','Express','Standard','Professional','Enterprise']
|
|
2
|
-
// import { buildEditionTags} from '../../core/playwright/tag-processor'
|
|
3
|
-
// function allowedTags(userArgs){
|
|
4
|
-
// let tags = userArgs?.tags || null
|
|
5
|
-
// if(tags){
|
|
6
|
-
// if(Array.isArray(tags)){
|
|
7
|
-
// return buildGrepTags(tags,'|')
|
|
8
|
-
// }
|
|
9
|
-
// return tags;
|
|
10
|
-
// }
|
|
11
|
-
// let edition = userArgs?.edition || null
|
|
12
|
-
// if(edition){
|
|
13
|
-
// const editionFrmCli = edition.split(',')
|
|
14
|
-
// if(editionFrmCli.length === 1){
|
|
15
|
-
// // const sortedEdition = editionPreprocessing(editionOrder,editionFrmCli)
|
|
16
|
-
// return buildEditionTags(expressionHandle(editionFrmCli,editionOrder),'|')
|
|
17
|
-
// }
|
|
18
|
-
// }
|
|
19
|
-
// return;
|
|
20
|
-
// }
|
|
21
|
-
|
|
22
|
-
// function buildGrepTags(tags,operator){
|
|
23
|
-
// return tags.join(`${operator}`)
|
|
24
|
-
// }
|
|
25
|
-
|
|
26
|
-
// function expressionHandle(editionFrmCli,editionOrder){
|
|
27
|
-
// var expression;
|
|
28
|
-
// var $edition;
|
|
29
|
-
// if(editionFrmCli.split('=').length !== 1){
|
|
30
|
-
// expression = editionFrmCli.split('').slice(0,2).join('');
|
|
31
|
-
// $edition = editionFrmCli.split('=').pop()
|
|
32
|
-
// }else if(editionFrmCli.split('>').length !== 1){
|
|
33
|
-
// expression = editionFrmCli.split('').slice(0,1).join('');
|
|
34
|
-
// $edition = editionFrmCli.split('>').pop()
|
|
35
|
-
// }else {
|
|
36
|
-
// expression = editionFrmCli.split('').slice(0,1).join('');
|
|
37
|
-
// $edition = editionFrmCli.split('<').pop()
|
|
38
|
-
// }
|
|
39
|
-
// const index_Edition = editionOrder.indexOf($edition)
|
|
40
|
-
// switch(expression){
|
|
41
|
-
// case '>=':
|
|
42
|
-
// if($edition == editionOrder[editionOrder.length-1]){
|
|
43
|
-
// return editionOrder[editionOrder.length-1]
|
|
44
|
-
// }
|
|
45
|
-
// return editionOrder.slice(0,index_Edition);
|
|
46
|
-
// case '<=':
|
|
47
|
-
// if($edition == editionOrder[0]){
|
|
48
|
-
// return editionOrder.slice(1,editionOrder.length + 1)
|
|
49
|
-
// }
|
|
50
|
-
// return editionOrder.slice(index_Edition+1,editionOrder.length+1);
|
|
51
|
-
// case '<':
|
|
52
|
-
// if($edition == editionOrder[0]){
|
|
53
|
-
// return editionOrder;
|
|
54
|
-
// }
|
|
55
|
-
// return editionOrder.slice(index_Edition, editionOrder.length + 1);
|
|
56
|
-
// case '>':
|
|
57
|
-
// if($edition == editionOrder[editionOrder.length-1]){
|
|
58
|
-
// return editionOrder;
|
|
59
|
-
// }
|
|
60
|
-
// return editionOrder.slice(0,index_Edition+1);
|
|
61
|
-
// default:
|
|
62
|
-
// break;
|
|
63
|
-
// }
|
|
64
|
-
// }
|
|
65
|
-
|
|
66
|
-
// export {
|
|
67
|
-
// allowedTags,
|
|
68
|
-
// expressionHandle
|
|
69
|
-
// }
|
|
70
|
-
"use strict";
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.testDataCreation = testDataCreation;
|
|
8
|
-
var _fastGlob = _interopRequireDefault(require("fast-glob"));
|
|
9
|
-
var _testStructure = require("./testStructure");
|
|
10
|
-
var _fileUtils = require("../../utils/fileUtils");
|
|
11
|
-
var _path = _interopRequireDefault(require("path"));
|
|
12
|
-
var _parserCucumber = _interopRequireDefault(require("./cucumber/parserCucumber"));
|
|
13
|
-
var _pathConfig = require("../config/pathConfig");
|
|
14
|
-
function testDataCreation() {
|
|
15
|
-
var exampleSteps = [];
|
|
16
|
-
const globalTestdata = new Map();
|
|
17
|
-
const testDataFeatureFilePath = (0, _pathConfig.getFeatureFilePath)();
|
|
18
|
-
return new Promise(resolve => {
|
|
19
|
-
_fastGlob.default.globSync(testDataFeatureFilePath, {
|
|
20
|
-
dot: true,
|
|
21
|
-
cwd: process.cwd()
|
|
22
|
-
}).forEach(filePath => {
|
|
23
|
-
var body, header;
|
|
24
|
-
var gherkinDocument = (0, _parserCucumber.default)((0, _fileUtils.readFileContents)(_path.default.resolve(process.cwd(), filePath), 'utf-8'));
|
|
25
|
-
gherkinDocument.feature.children.forEach($scenario => {
|
|
26
|
-
var _$scenario$scenario, _$scenario$scenario3, _$scenario$scenario4;
|
|
27
|
-
if ($scenario !== null && $scenario !== void 0 && $scenario.background) {
|
|
28
|
-
$scenario.scenario = {
|
|
29
|
-
...$scenario.background,
|
|
30
|
-
examples: []
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
if ($scenario !== null && $scenario !== void 0 && (_$scenario$scenario = $scenario.scenario) !== null && _$scenario$scenario !== void 0 && _$scenario$scenario.steps) {
|
|
34
|
-
var _$scenario$scenario2;
|
|
35
|
-
(_$scenario$scenario2 = $scenario.scenario) === null || _$scenario$scenario2 === void 0 || _$scenario$scenario2.steps.forEach(step => {
|
|
36
|
-
var _step$dataTable;
|
|
37
|
-
var $currentStep = {
|
|
38
|
-
currentArgument: '',
|
|
39
|
-
dataTableStep: '',
|
|
40
|
-
inputParameter: '',
|
|
41
|
-
input: false,
|
|
42
|
-
steptable: false,
|
|
43
|
-
scenarioTable: false
|
|
44
|
-
};
|
|
45
|
-
const {
|
|
46
|
-
convertedStep,
|
|
47
|
-
currentArgument
|
|
48
|
-
} = (0, _testStructure.extractStepArgument)(step.text);
|
|
49
|
-
if (Object.values(currentArgument).length && !$scenario.scenario.examples.length) {
|
|
50
|
-
$currentStep.currentArgument = currentArgument;
|
|
51
|
-
$currentStep.input = true;
|
|
52
|
-
} else {
|
|
53
|
-
$currentStep.currentArgument = [];
|
|
54
|
-
$currentStep.input = false;
|
|
55
|
-
}
|
|
56
|
-
var dataTableStep;
|
|
57
|
-
step === null || step === void 0 || (_step$dataTable = step.dataTable) === null || _step$dataTable === void 0 || _step$dataTable.rows.forEach(cell => {
|
|
58
|
-
const Table = cell.cells.map(element => element.value);
|
|
59
|
-
dataTableStep = Table;
|
|
60
|
-
});
|
|
61
|
-
if (step !== null && step !== void 0 && step.dataTable) {
|
|
62
|
-
$currentStep.dataTableStep = dataTableStep;
|
|
63
|
-
$currentStep.steptable = true;
|
|
64
|
-
}
|
|
65
|
-
globalTestdata.set(convertedStep, Object.assign({}, $currentStep));
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
if ($scenario.background && typeof $scenario.background === Object) {
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
if (!((_$scenario$scenario3 = $scenario.scenario) !== null && _$scenario$scenario3 !== void 0 && (_$scenario$scenario3 = _$scenario$scenario3.examples) !== null && _$scenario$scenario3 !== void 0 && _$scenario$scenario3.length)) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if ((_$scenario$scenario4 = $scenario.scenario) !== null && _$scenario$scenario4 !== void 0 && (_$scenario$scenario4 = _$scenario$scenario4.examples) !== null && _$scenario$scenario4 !== void 0 && _$scenario$scenario4.length) {
|
|
75
|
-
var _$scenario$scenario5;
|
|
76
|
-
var $currentExampleSteps = {
|
|
77
|
-
currentArgument: '',
|
|
78
|
-
dataTableStep: '',
|
|
79
|
-
inputParameter: '',
|
|
80
|
-
input: false,
|
|
81
|
-
steptable: false,
|
|
82
|
-
scenarioTable: false
|
|
83
|
-
};
|
|
84
|
-
exampleSteps = $scenario.scenario.steps.map(element => (0, _testStructure.extractStepArgument)(element.text).convertedStep);
|
|
85
|
-
(_$scenario$scenario5 = $scenario.scenario) === null || _$scenario$scenario5 === void 0 || _$scenario$scenario5.examples.map(example => {
|
|
86
|
-
var _example$tableHeader;
|
|
87
|
-
body = example === null || example === void 0 ? void 0 : example.tableBody.map(cell => {
|
|
88
|
-
return cell === null || cell === void 0 ? void 0 : cell.cells.map(example => example.value);
|
|
89
|
-
});
|
|
90
|
-
header = example === null || example === void 0 || (_example$tableHeader = example.tableHeader) === null || _example$tableHeader === void 0 ? void 0 : _example$tableHeader.cells.map(exampleHead => {
|
|
91
|
-
return exampleHead.value;
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
const inputParameter = testDataExtraction(header, body);
|
|
95
|
-
exampleSteps.forEach(step => {
|
|
96
|
-
$currentExampleSteps.inputParameter = Object.assign([], inputParameter);
|
|
97
|
-
$currentExampleSteps.scenarioTable = true;
|
|
98
|
-
globalTestdata.set(step, Object.assign({}, $currentExampleSteps));
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
resolve(globalTestdata);
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
function testDataExtraction(tableHeader, tableBody) {
|
|
107
|
-
const result = [];
|
|
108
|
-
if (tableBody && tableHeader) {
|
|
109
|
-
tableBody.forEach(array => {
|
|
110
|
-
const obj = {};
|
|
111
|
-
array.forEach((item, index) => {
|
|
112
|
-
obj[`${tableHeader[index].replace(/\s/g, '')}`] = item;
|
|
113
|
-
});
|
|
114
|
-
result.push(obj);
|
|
115
|
-
});
|
|
116
|
-
} else {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
return [...result];
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// handle length of example
|
|
123
|
-
// if($scenario?.background){
|
|
124
|
-
// $scenario.scenario = $scenario.background
|
|
125
|
-
// }
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.extractStepArgument = extractStepArgument;
|
|
7
|
-
exports.testSnippet = testSnippet;
|
|
8
|
-
var _logger = require("../../utils/logger");
|
|
9
|
-
var _throwError = require("../errors/throwError");
|
|
10
|
-
var _stringManipulation = require("../utils/stringManipulation");
|
|
11
|
-
var _stepsnippets = require("./stepGenerate/stepsnippets");
|
|
12
|
-
function testSnippet(parsedFeature, featureFilePath) {
|
|
13
|
-
var currentScenarios = [];
|
|
14
|
-
var $tags = {};
|
|
15
|
-
parsedFeature.scenarios.forEach(scenario => {
|
|
16
|
-
scenario.scenarioTags = [...scenario.scenarioTags, ...parsedFeature.featureTags];
|
|
17
|
-
$tags = Object.assign($tags, tagHandleFixture(scenario));
|
|
18
|
-
const resultedStep = scenarioSnippet(scenario);
|
|
19
|
-
currentScenarios.push(resultedStep);
|
|
20
|
-
});
|
|
21
|
-
return (0, _stepsnippets.testFile)(currentScenarios, featureFilePath, $tags);
|
|
22
|
-
}
|
|
23
|
-
function extractStepArgument(step) {
|
|
24
|
-
var testInputs = [];
|
|
25
|
-
var currentArgument = {};
|
|
26
|
-
var convertedStep = step.replace(/"([^"]+)"/g, (match, word) => {
|
|
27
|
-
if (!isNaN(Number(word))) {
|
|
28
|
-
testInputs.push(word.toString());
|
|
29
|
-
return '{int}';
|
|
30
|
-
} else {
|
|
31
|
-
testInputs.push(word.toString());
|
|
32
|
-
return '{string}';
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
currentArgument = testInputs.map(inputs => `"${(0, _stringManipulation.removeAll)(inputs, ['<', '>'], /\s/g)}"`);
|
|
36
|
-
return {
|
|
37
|
-
convertedStep,
|
|
38
|
-
currentArgument
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
function scenarioSnippet(scenario) {
|
|
42
|
-
var _scenario$background;
|
|
43
|
-
var currentStep = [];
|
|
44
|
-
var currentInputs = [];
|
|
45
|
-
/** To Add BackGround As Steps */
|
|
46
|
-
if ((scenario === null || scenario === void 0 || (_scenario$background = scenario.background) === null || _scenario$background === void 0 ? void 0 : _scenario$background.length) >= 1) {
|
|
47
|
-
/** Destructed Should be Background will first remaining Step behind */
|
|
48
|
-
scenario.steps = [...scenario.background, ...scenario.steps];
|
|
49
|
-
}
|
|
50
|
-
scenario.steps.forEach(step => {
|
|
51
|
-
var {
|
|
52
|
-
convertedStep,
|
|
53
|
-
currentArgument
|
|
54
|
-
} = extractStepArgument(step.stepDescription);
|
|
55
|
-
var pageFixtureUsed_Step = testDataMap.get(convertedStep) || null;
|
|
56
|
-
/** Step Implementation Check (Walk Through Approach)*/
|
|
57
|
-
if (!pageFixtureUsed_Step.stepPageFixtureName) {
|
|
58
|
-
(0, _throwError.throwNotImplementError)(step.stepDescription, convertedStep, step.keyword);
|
|
59
|
-
process.exit(0);
|
|
60
|
-
}
|
|
61
|
-
currentInputs.push(pageFixtureUsed_Step.stepPageFixtureName);
|
|
62
|
-
currentStep.push((0, _stepsnippets.testStep)(step.keyword, convertedStep, pageFixtureUsed_Step.stepPageFixtureName, pageFixtureUsed_Step.stepInputKey.join(','), step.stepDescription));
|
|
63
|
-
return;
|
|
64
|
-
});
|
|
65
|
-
const pageFixtures = pageFixtureFilter(currentInputs);
|
|
66
|
-
return (0, _stepsnippets.testCase)(currentStep, scenario === null || scenario === void 0 ? void 0 : scenario.examples, scenario === null || scenario === void 0 ? void 0 : scenario.scenariodescription, pageFixtures, scenario.scenarioTags);
|
|
67
|
-
}
|
|
68
|
-
function pageFixtureFilter(pageFixturesArray) {
|
|
69
|
-
var pageInputs = [];
|
|
70
|
-
pageFixturesArray.forEach(pages => {
|
|
71
|
-
pageInputs = [...pageInputs, ...(0, _stringManipulation.removeAll)(pages, ['{', '}']).split(',')];
|
|
72
|
-
});
|
|
73
|
-
return (0, _stringManipulation.avoidDuplicate)(pageInputs);
|
|
74
|
-
}
|
|
75
|
-
function tagHandleFixture(scenario) {
|
|
76
|
-
var _scenario$examples;
|
|
77
|
-
if (((_scenario$examples = scenario.examples) === null || _scenario$examples === void 0 ? void 0 : _scenario$examples.length) >= 1) {
|
|
78
|
-
var tagsObjects = {};
|
|
79
|
-
scenario.examples.forEach(($ele, index) => {
|
|
80
|
-
var exampleDescription = Object.values($ele).map(val => {
|
|
81
|
-
return val.concat('-');
|
|
82
|
-
});
|
|
83
|
-
Object.assign(tagsObjects, {
|
|
84
|
-
[exampleDescription.join('').concat(`Example-${index + 1}`)]: scenario.scenarioTags
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
return tagsObjects;
|
|
88
|
-
}
|
|
89
|
-
return {
|
|
90
|
-
[scenario.scenariodescription]: scenario.scenarioTags
|
|
91
|
-
};
|
|
92
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.avoidDuplicate = avoidDuplicate;
|
|
7
|
-
exports.filePathPattern = filePathPattern;
|
|
8
|
-
exports.removeAll = removeAll;
|
|
9
|
-
function removeAll(InputString, toRemove, regex = undefined, options = null) {
|
|
10
|
-
if (regex) {
|
|
11
|
-
InputString = InputString.replace(regex, '').trim();
|
|
12
|
-
}
|
|
13
|
-
toRemove.forEach(ele => {
|
|
14
|
-
InputString = InputString.replace(ele, '').trim();
|
|
15
|
-
});
|
|
16
|
-
return InputString;
|
|
17
|
-
}
|
|
18
|
-
function avoidDuplicate(arrayOfInputs) {
|
|
19
|
-
return [...new Set(arrayOfInputs)];
|
|
20
|
-
}
|
|
21
|
-
function filePathPattern(filePath, isWindows = true) {
|
|
22
|
-
if (isWindows) {
|
|
23
|
-
return filePath.split('\\').join('/');
|
|
24
|
-
}
|
|
25
|
-
return filePath;
|
|
26
|
-
}
|