@dev-blinq/cucumber_client 1.0.1225-dev → 1.0.1226-dev

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.
@@ -58,6 +58,9 @@ for (let i = 0; i < scenarioReport.stepsProgress.length; i++) {
58
58
  page.addCucumberStep(keyword, step.cucumberLine, methodName, step.recording.steps.length);
59
59
 
60
60
  page.removeUnusedElements();
61
+ if (generateCodeResult.locatorsMetadata) {
62
+ page.addLocatorsMetadata(generateCodeResult.locatorsMetadata);
63
+ }
61
64
  await page.save();
62
65
  set.add(page.sourceFileName);
63
66
  }
@@ -497,6 +497,10 @@ this.imports[2].node.source.value
497
497
  if (config && config.locatorsMetadataDir) {
498
498
  // if config.locatorsMetadataDir is set, use it to create the file path
499
499
  locatorsMetadataFileName = path.join(config.locatorsMetadataDir, path.basename(locatorsMetadataFileName));
500
+ // check if the directory exists, if not create it
501
+ if (!existsSync(path.dirname(locatorsMetadataFileName))) {
502
+ mkdirSync(path.dirname(locatorsMetadataFileName), { recursive: true });
503
+ }
500
504
  }
501
505
  let metadata = {};
502
506
  // try to read the file to metadata, protect with try catch
@@ -62,6 +62,12 @@ const _isCodeGenerationStep = (step) => {
62
62
  }
63
63
  return false;
64
64
  };
65
+ // Note: this function is used to exclude a key from an object
66
+ // Please move it to utils and use it as a reusable function ...
67
+ function excludeKey(obj, keyToRemove) {
68
+ const { [keyToRemove]: _, ...rest } = obj;
69
+ return rest;
70
+ }
65
71
  const splitToLocatorsGroups = (locators) => {
66
72
  const no_text = locators.locators.filter((locator) => locator.mode === "NO_TEXT");
67
73
  const ignore_digit = locators.locators.filter((locator) => locator.mode === "IGNORE_DIGIT");
@@ -131,7 +137,8 @@ const _generateCodeFromCommand = (step, elements, userData) => {
131
137
  if (!elementIdentifier) {
132
138
  elementIdentifier = findElementIdentifier(node, step, userData, elements);
133
139
  }
134
- elements[elementIdentifier] = locatorObject;
140
+ const withoutAllStrategyLocators = excludeKey(locatorObject, "allStrategyLocators");
141
+ elements[elementIdentifier] = withoutAllStrategyLocators;
135
142
  elementsChanged = true;
136
143
  }
137
144
  let optionElement = null;
@@ -655,6 +655,7 @@ class LocalAgent {
655
655
 
656
656
  let page = agent.project.getPage(agent.pageName, true);
657
657
  const generateCodeResult = generateCode(recording, page, userData, agent.project.rootFolder, methodName);
658
+
658
659
  if (generateCodeResult.simple === true) {
659
660
  agent.sendDone("generateStepCode", null);
660
661
  break;
@@ -707,6 +708,9 @@ class LocalAgent {
707
708
  cucumberStep: agent.cucumberStep,
708
709
  },
709
710
  });
711
+ if (generateCodeResult.locatorsMetadata) {
712
+ page.addLocatorsMetadata(generateCodeResult.locatorsMetadata);
713
+ }
710
714
  await page.save();
711
715
  agent.scenarioReport.updateLastStep({
712
716
  recording: command.data.recording,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev-blinq/cucumber_client",
3
- "version": "1.0.1225-dev",
3
+ "version": "1.0.1226-dev",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "types": "bin/index.d.ts",