@zohodesk/testinglibrary 0.1.8-stb-bdd-v23 → 0.1.8-stb-bdd-v25

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.
Files changed (58) hide show
  1. package/build/bdd-poc/core-runner/stepDefinitions.js +1 -1
  2. package/build/bdd-poc/test/stepGenerate/extractTestInputs.js +8 -4
  3. package/build/bdd-poc/test/stepGenerate/parserSteps.js +75 -0
  4. package/build/bdd-poc/test/stepGenerate/stepFileGenerate.js +4 -2
  5. package/build/index.d.ts +0 -48
  6. package/npm-shrinkwrap.json +33 -195
  7. package/package.json +2 -2
  8. package/build/bdd-framework/cli/commands/env.js +0 -42
  9. package/build/bdd-framework/cli/commands/export.js +0 -47
  10. package/build/bdd-framework/cli/commands/test.js +0 -64
  11. package/build/bdd-framework/cli/index.js +0 -11
  12. package/build/bdd-framework/cli/options.js +0 -19
  13. package/build/bdd-framework/cli/worker.js +0 -13
  14. package/build/bdd-framework/config/dir.js +0 -27
  15. package/build/bdd-framework/config/env.js +0 -50
  16. package/build/bdd-framework/config/index.js +0 -90
  17. package/build/bdd-framework/config/lang.js +0 -14
  18. package/build/bdd-framework/cucumber/buildStepDefinition.js +0 -43
  19. package/build/bdd-framework/cucumber/gherkin.d.js +0 -5
  20. package/build/bdd-framework/cucumber/loadConfig.js +0 -17
  21. package/build/bdd-framework/cucumber/loadFeatures.js +0 -39
  22. package/build/bdd-framework/cucumber/loadSnippetBuilder.js +0 -20
  23. package/build/bdd-framework/cucumber/loadSources.js +0 -57
  24. package/build/bdd-framework/cucumber/loadSteps.js +0 -40
  25. package/build/bdd-framework/decorators.js +0 -18
  26. package/build/bdd-framework/gen/fixtures.js +0 -48
  27. package/build/bdd-framework/gen/formatter.js +0 -135
  28. package/build/bdd-framework/gen/i18n.js +0 -39
  29. package/build/bdd-framework/gen/index.js +0 -164
  30. package/build/bdd-framework/gen/testFile.js +0 -422
  31. package/build/bdd-framework/gen/testNode.js +0 -61
  32. package/build/bdd-framework/gen/testPoms.js +0 -133
  33. package/build/bdd-framework/hooks/scenario.js +0 -107
  34. package/build/bdd-framework/hooks/worker.js +0 -83
  35. package/build/bdd-framework/index.js +0 -45
  36. package/build/bdd-framework/playwright/fixtureParameterNames.js +0 -93
  37. package/build/bdd-framework/playwright/getLocationInFile.js +0 -52
  38. package/build/bdd-framework/playwright/loadConfig.js +0 -42
  39. package/build/bdd-framework/playwright/testTypeImpl.js +0 -61
  40. package/build/bdd-framework/playwright/transform.js +0 -84
  41. package/build/bdd-framework/playwright/types.js +0 -5
  42. package/build/bdd-framework/playwright/utils.js +0 -34
  43. package/build/bdd-framework/run/StepInvoker.js +0 -73
  44. package/build/bdd-framework/run/bddFixtures.js +0 -170
  45. package/build/bdd-framework/run/bddWorld.js +0 -76
  46. package/build/bdd-framework/snippets/index.js +0 -136
  47. package/build/bdd-framework/snippets/snippetSyntax.js +0 -43
  48. package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +0 -26
  49. package/build/bdd-framework/snippets/snippetSyntaxTs.js +0 -18
  50. package/build/bdd-framework/stepDefinitions/createBdd.js +0 -66
  51. package/build/bdd-framework/stepDefinitions/decorators/class.js +0 -68
  52. package/build/bdd-framework/stepDefinitions/decorators/steps.js +0 -99
  53. package/build/bdd-framework/stepDefinitions/defineStep.js +0 -62
  54. package/build/bdd-framework/stepDefinitions/stepConfig.js +0 -24
  55. package/build/bdd-framework/utils/exit.js +0 -58
  56. package/build/bdd-framework/utils/index.js +0 -70
  57. package/build/bdd-framework/utils/jsStringWrap.js +0 -44
  58. package/build/bdd-framework/utils/logger.js +0 -30
@@ -36,7 +36,7 @@ function getTestData(description, argument) {
36
36
 
37
37
  /** StepTable Passed */
38
38
  if (stepArguments.steptable) {
39
- return stepArguments.dataTableStep;
39
+ return [stepArguments.dataTableStep];
40
40
  }
41
41
  /** Scenario Table Passed */
42
42
 
@@ -10,7 +10,7 @@ var _fileUtils = require("../../../utils/fileUtils");
10
10
  var _path = _interopRequireDefault(require("path"));
11
11
  var _pathConfig = require("../../config/pathConfig");
12
12
  var _throwError = require("../../errors/throwError");
13
- globalThis.testDataMap = new Map();
13
+ // globalThis.testDataMap = new Map();
14
14
  function createStepDataMap() {
15
15
  const stepFilePath = (0, _pathConfig.getStepFilePath)();
16
16
  const processedSpecFile = [];
@@ -36,13 +36,17 @@ function extractPageFixtures(filePath) {
36
36
  });
37
37
  }
38
38
  function extractInputFrmStep(trimmedStep, filePath) {
39
+ var _inputNames$split;
39
40
  var toRemovePattern = trimmedStep.match(/async\s*\(([^)]*)\)/)[1].match(/{(.*?)}/);
40
- var InputNames = trimmedStep.match(/async\s*\(([^)]*)\)/)[1].replace(toRemovePattern[0], "$null") || [];
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
+ }
41
46
  try {
42
- var _InputNames$split;
43
47
  return {
44
48
  stepPageFixtureName: trimmedStep.split(' ').slice(1).join('').match(/\((.*?)\)/)[1].match(/\{(.*?)\}/g).pop() || [false].pop(),
45
- stepInputKey: ((_InputNames$split = InputNames.split(',')) === null || _InputNames$split === void 0 || (_InputNames$split = _InputNames$split.slice(1)) === null || _InputNames$split === void 0 ? void 0 : _InputNames$split.map(input => `"${input}"`)) || []
49
+ stepInputKey: filteredInputs
46
50
  };
47
51
  } catch (error) {
48
52
  // Logger.log(Logger.FAILURE_TYPE,`${filePath} - Steps Has MisMatched Pattern`)
@@ -0,0 +1,75 @@
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
+ }
30
+ if (input.type == "Identifier") {
31
+ callbackInputs.push(input.name);
32
+ }
33
+ });
34
+ testDataMap.set(stepText, {
35
+ stepPageFixtureName: combineAllFixture(fixtures),
36
+ stepInputKey: callbackInputs.map(element => `"${element}"`)
37
+ });
38
+ resolve();
39
+ }
40
+ }
41
+ });
42
+ }
43
+ function combineAllFixture(fixturesArray) {
44
+ if (fixturesArray.length) {
45
+ return `{${fixturesArray}}`;
46
+ }
47
+ const lastFixture = fixturesArray.pop();
48
+ const allFixture = fixturesArray.join(",");
49
+ return `{${allFixture}${lastFixture}}`;
50
+ }
51
+ function traverseASTstep() {
52
+ var $promise = [];
53
+ _fastGlob.default.globSync((0, _pathConfig.getStepFilePath)(), {
54
+ dot: true,
55
+ cwd: process.cwd()
56
+ }).forEach(filePath => {
57
+ $promise.push(nodeAST((0, _fileUtils.readFileContents)(filePath)));
58
+ });
59
+ Promise.all($promise);
60
+ }
61
+ function nodeAST(stepContent) {
62
+ const options = {
63
+ ecmaVersion: 2020
64
+ };
65
+ const $node = (0, _acorn.parse)(stepContent, options).body;
66
+ $node.forEach(node => {
67
+ extractFixtureFrmNode(node);
68
+ });
69
+ }
70
+ function getPageFixture(fixtureNode) {
71
+ return fixtureNode.map($element => {
72
+ var _$element$key;
73
+ return ($element === null || $element === void 0 || (_$element$key = $element.key) === null || _$element$key === void 0 ? void 0 : _$element$key.name) || "page";
74
+ });
75
+ }
@@ -10,15 +10,17 @@ var _path = _interopRequireDefault(require("path"));
10
10
  var _featureFileParer = require("../cucumber/featureFileParer");
11
11
  var _testStructure = require("../testStructure");
12
12
  var _fileUtils = require("../../../utils/fileUtils");
13
- var _extractTestInputs = require("./extractTestInputs");
14
13
  var _pathConfig = require("../../config/pathConfig");
14
+ var _parserSteps = require("./parserSteps");
15
+ // import { createStepDataMap } from './extractTestInputs';
16
+
15
17
  function stepFileCreation(parsedFeatureContent, stepFilename, featureFilePath) {
16
18
  const stepsFilePath = _path.default.resolve(process.cwd(), 'uat', '.feature-gen', stepFilename);
17
19
  const stepsSnippets = (0, _testStructure.testSnippet)(parsedFeatureContent, featureFilePath);
18
20
  (0, _fileUtils.writeFileContents)(stepsFilePath, stepsSnippets);
19
21
  }
20
22
  async function generateSpecFiles() {
21
- await (0, _extractTestInputs.createStepDataMap)();
23
+ await (0, _parserSteps.traverseASTstep)();
22
24
  const featureFilePattern = (0, _pathConfig.getFeatureFilePath)();
23
25
  const featureFileFolderPath = _path.default.resolve(process.cwd(), 'uat', '.feature-gen');
24
26
  if (!(0, _fileUtils.checkIfFileExists)(featureFileFolderPath)) {
package/build/index.d.ts CHANGED
@@ -8,53 +8,5 @@ import {
8
8
  TestType,
9
9
  Page
10
10
  } from '@playwright/test';
11
- // import { DefineStepPattern } from '@cucumber/cucumber/lib/support_code_library_builder/types';
12
-
13
- // export type KeyValue = { [key: string]: any };
14
-
15
- // export type BuiltInFixturesWorker = PlaywrightWorkerArgs &
16
- // PlaywrightWorkerOptions;
17
- // export type BuiltInFixtures = PlaywrightTestArgs &
18
- // PlaywrightTestOptions &
19
- // BuiltInFixturesWorker;
20
-
21
- // export type FixturesArg<T extends KeyValue = {}, W extends KeyValue = {}> = T &
22
- // W &
23
- // BuiltInFixtures;
24
-
25
- // export declare let hasCustomTest: boolean;
26
-
27
- // export declare function createBdd<
28
- // T extends KeyValue = BuiltInFixtures,
29
- // W extends KeyValue = BuiltInFixturesWorker,
30
- // World
31
- // >(
32
- // customTest?: TestType<T, W> | null,
33
- // _CustomWorld?: new (...args: any[]) => World
34
- // ): {
35
- // Given: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
36
- // When: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
37
- // Then: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
38
- // And: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
39
- // But: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
40
- // Step: (pattern: DefineStepPattern, fn: StepFunction<T, W>) => void;
41
- // Before: any;
42
- // After: any;
43
- // BeforeAll: any;
44
- // AfterAll: any;
45
- // };
46
-
47
- // type StepFunctionFixturesArg<
48
- // T extends KeyValue,
49
- // W extends KeyValue
50
- // > = FixturesArg<T, W>;
51
- // type StepFunction<T extends KeyValue, W extends KeyValue> = (
52
- // fixtures: StepFunctionFixturesArg<T, W>,
53
- // ...args: any[]
54
- // ) => unknown;
55
-
56
- // const { Given, Then, When, Step, And, But } = createBdd();
57
-
58
- // export { Given, Then, When, Step, And, But, expect, test, createBdd, Page };
59
11
 
60
12
  export * from '@playwright/test/types/test';