@zohodesk/testinglibrary 0.1.8-exp-bdd-v1 → 0.1.8-exp-bdd-v3

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 (70) hide show
  1. package/build/bdd-poc/core-runner/stepDefinitions.js +1 -1
  2. package/build/bdd-poc/runner.js +2 -2
  3. package/build/bdd-poc/test/cucumber/featureFileParer.js +4 -5
  4. package/build/bdd-poc/test/stepGenerate/stepFileGenerate.js +8 -9
  5. package/build/bdd-poc/test/stepGenerate/stepsnippets.js +2 -1
  6. package/build/bdd-poc/test/testDataMap.js +2 -2
  7. package/build/bdd-poc/test/testStructure.js +3 -4
  8. package/build/core/jest/preprocessor/jsPreprocessor.js +3 -2
  9. package/build/core/playwright/custom-commands.js +2 -1
  10. package/build/core/playwright/index.js +8 -18
  11. package/build/core/playwright/readConfigFile.js +2 -1
  12. package/build/core/playwright/setup/config-creator.js +4 -5
  13. package/build/core/playwright/setup/config-utils.js +14 -13
  14. package/build/core/playwright/test-runner.js +33 -27
  15. package/build/decorators.d.ts +1 -1
  16. package/build/decorators.js +2 -16
  17. package/build/parser/parser.js +1 -0
  18. package/build/utils/logger.js +2 -1
  19. package/build/utils/stepDefinitionsFormatter.js +2 -1
  20. package/npm-shrinkwrap.json +4 -570
  21. package/package.json +3 -3
  22. package/build/bdd-framework/cli/commands/env.js +0 -42
  23. package/build/bdd-framework/cli/commands/export.js +0 -47
  24. package/build/bdd-framework/cli/commands/test.js +0 -60
  25. package/build/bdd-framework/cli/index.js +0 -11
  26. package/build/bdd-framework/cli/options.js +0 -19
  27. package/build/bdd-framework/cli/worker.js +0 -13
  28. package/build/bdd-framework/config/dir.js +0 -27
  29. package/build/bdd-framework/config/env.js +0 -49
  30. package/build/bdd-framework/config/index.js +0 -90
  31. package/build/bdd-framework/cucumber/buildStepDefinition.js +0 -43
  32. package/build/bdd-framework/cucumber/gherkin.d.js +0 -5
  33. package/build/bdd-framework/cucumber/gherkin.d.ts +0 -45
  34. package/build/bdd-framework/cucumber/loadConfig.js +0 -17
  35. package/build/bdd-framework/cucumber/loadFeatures.js +0 -39
  36. package/build/bdd-framework/cucumber/loadSnippetBuilder.js +0 -20
  37. package/build/bdd-framework/cucumber/loadSources.js +0 -57
  38. package/build/bdd-framework/cucumber/loadSteps.js +0 -35
  39. package/build/bdd-framework/decorators.js +0 -18
  40. package/build/bdd-framework/gen/formatter.js +0 -88
  41. package/build/bdd-framework/gen/i18n.js +0 -35
  42. package/build/bdd-framework/gen/index.js +0 -163
  43. package/build/bdd-framework/gen/poms.js +0 -46
  44. package/build/bdd-framework/gen/testFile.js +0 -356
  45. package/build/bdd-framework/gen/testNode.js +0 -48
  46. package/build/bdd-framework/gen/testPoms.js +0 -123
  47. package/build/bdd-framework/index.js +0 -45
  48. package/build/bdd-framework/playwright/fixtureParameterNames.js +0 -77
  49. package/build/bdd-framework/playwright/getLocationInFile.js +0 -46
  50. package/build/bdd-framework/playwright/loadConfig.js +0 -42
  51. package/build/bdd-framework/playwright/testTypeImpl.js +0 -57
  52. package/build/bdd-framework/playwright/transform.js +0 -80
  53. package/build/bdd-framework/playwright/types.js +0 -5
  54. package/build/bdd-framework/playwright/utils.js +0 -37
  55. package/build/bdd-framework/run/bddFixtures.js +0 -107
  56. package/build/bdd-framework/run/bddWorld.js +0 -88
  57. package/build/bdd-framework/snippets/index.js +0 -134
  58. package/build/bdd-framework/snippets/snippetSyntax.js +0 -41
  59. package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +0 -26
  60. package/build/bdd-framework/snippets/snippetSyntaxTs.js +0 -18
  61. package/build/bdd-framework/stepDefinitions/createBdd.js +0 -49
  62. package/build/bdd-framework/stepDefinitions/createDecorators.js +0 -108
  63. package/build/bdd-framework/stepDefinitions/decorators/poms.js +0 -64
  64. package/build/bdd-framework/stepDefinitions/decorators/steps.js +0 -93
  65. package/build/bdd-framework/stepDefinitions/defineStep.js +0 -61
  66. package/build/bdd-framework/stepDefinitions/stepConfig.js +0 -24
  67. package/build/bdd-framework/utils/exit.js +0 -54
  68. package/build/bdd-framework/utils/index.js +0 -44
  69. package/build/bdd-framework/utils/jsStringWrap.js +0 -44
  70. package/build/bdd-framework/utils/logger.js +0 -28
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createNativeBDD = createNativeBDD;
7
7
  function $Given(description) {
8
- const stepFunction = globalStepMap[description];
8
+ const stepFunction = globalStepMap.get(description);
9
9
  if (stepFunction === undefined) {
10
10
  process.exit(1);
11
11
  }
@@ -8,8 +8,8 @@ exports.stepFileMap = stepFileMap;
8
8
  var _fastGlob = require("fast-glob");
9
9
  var _path = _interopRequireDefault(require("path"));
10
10
  async function stepFileMap() {
11
- const featureFilePath = _path.default.resolve(process.cwd(), 'uat', 'modules', '**', '**', '**', '**', '**', '**', '**', '**', '*.spec.js').split(`\\`).join('/');
12
- await (0, _fastGlob.globSync)(featureFilePath, {
11
+ const actualSpecPattern = _path.default.resolve(process.cwd(), 'uat', 'modules', '**', '**', '**', '**', '**', '**', '**', '**', '*.spec.js').split(`\\`).join('/');
12
+ await (0, _fastGlob.globSync)(actualSpecPattern, {
13
13
  dot: true,
14
14
  cwd: process.cwd()
15
15
  }).forEach(FilePath => {
@@ -1,16 +1,15 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.parseFeature = parseFeature;
8
- var _gherkin = _interopRequireDefault(require("@cucumber/gherkin"));
7
+ var _gherkin = require("@cucumber/gherkin");
9
8
  var _messages = require("@cucumber/messages");
10
9
  var uuidFn = _messages.IdGenerator.uuid();
11
- var builder = new _gherkin.default.AstBuilder(uuidFn);
12
- var matcher = new _gherkin.default.GherkinClassicTokenMatcher();
13
- var parser = new _gherkin.default.Parser(builder, matcher);
10
+ var builder = new _gherkin.AstBuilder(uuidFn);
11
+ var matcher = new _gherkin.GherkinClassicTokenMatcher();
12
+ var parser = new _gherkin.Parser(builder, matcher);
14
13
  function parseFeature(featureFileContent) {
15
14
  var _gherkinDocument$feat;
16
15
  var gherkinDocument = parser.parse(featureFileContent);
@@ -10,27 +10,26 @@ var _fastGlob = _interopRequireDefault(require("fast-glob"));
10
10
  var _path = _interopRequireDefault(require("path"));
11
11
  var _featureFileParer = require("../cucumber/featureFileParer");
12
12
  var _testStructure = require("../testStructure");
13
- async function stepFileCreation(featureContent, stepFilename, constructedFilePath) {
14
- const generatedFolderPath = _path.default.resolve(process.cwd(), './feature-gen');
13
+ async function stepFileCreation(featureContent, stepFilename, featureFilePath) {
14
+ const generatedFolderPath = _path.default.resolve(process.cwd(), 'uat', 'feature-gen');
15
15
  if (!(0, _fs.existsSync)(generatedFolderPath)) {
16
- (0, _fs.mkdirSync)('./feature-gen', {
16
+ (0, _fs.mkdirSync)(generatedFolderPath, {
17
17
  recursive: true
18
18
  });
19
19
  }
20
- const stepsFilePath = _path.default.resolve(process.cwd(), 'feature-gen', stepFilename);
21
- const stepsSnippets = (0, _testStructure.testSnippet)(featureContent, constructedFilePath);
20
+ const stepsFilePath = _path.default.resolve(process.cwd(), 'uat', 'feature-gen', stepFilename);
21
+ const stepsSnippets = (0, _testStructure.testSnippet)(featureContent, featureFilePath);
22
22
  await (0, _fs.writeFileSync)(stepsFilePath, stepsSnippets);
23
23
  }
24
24
  function generateSpecFiles() {
25
- const featureFilePath = _path.default.resolve(process.cwd(), 'uat', 'modules', '**', '**', '**', '**', '**', '**', '**', '**', '*.feature').split(`\\`).join('/');
26
- _fastGlob.default.globSync(featureFilePath, {
25
+ const featureFilePattern = _path.default.resolve(process.cwd(), 'uat', 'modules', '**', '**', '**', '**', '**', '**', '**', '**', '*.feature').split(`\\`).join('/');
26
+ _fastGlob.default.globSync(featureFilePattern, {
27
27
  dot: true,
28
28
  cwd: process.cwd()
29
29
  }).forEach(filePath => {
30
- console.log(filePath);
31
30
  const featurefilePath = _path.default.resolve(process.cwd(), filePath);
32
31
  const featureContent = (0, _featureFileParer.parseFeature)((0, _fs.readFileSync)(featurefilePath, 'utf-8'));
33
32
  const fileName = _path.default.basename(filePath).replace('.feature', '.spec.js');
34
- stepFileCreation(featureContent, fileName, featureFilePath);
33
+ stepFileCreation(featureContent, fileName, filePath);
35
34
  });
36
35
  }
@@ -8,7 +8,8 @@ exports.testCase = testCase;
8
8
  exports.testFile = testFile;
9
9
  exports.testStep = testStep;
10
10
  exports.testSuite = testSuite;
11
- const TESTING_LIBRARY = exports.TESTING_LIBRARY = '@zohodesk/testinglibrary';
11
+ const TESTING_LIBRARY = '@zohodesk/testinglibrary';
12
+ exports.TESTING_LIBRARY = TESTING_LIBRARY;
12
13
  function testStep(keyword, description, browserObject, testData, options) {
13
14
  return `await $${keyword}('${description}')(${browserObject},${testData})\n`;
14
15
  }
@@ -18,8 +18,8 @@ async function testDataCreation() {
18
18
  var parser = new _gherkin.default.Parser(builder, matcher);
19
19
  var exampleSteps = [];
20
20
  const globalTestdata = new Map();
21
- const featurePath = _path.default.resolve('uat', 'modules', '**', '**', '**', '**', '**', '*.feature');
22
- await _fastGlob.default.globSync([featurePath], {
21
+ const actualStepFilePath = _path.default.resolve('uat', 'modules', '**', '**', '**', '**', '**', '*.spec.js').split('\\').join('/');
22
+ await _fastGlob.default.globSync(actualStepFilePath, {
23
23
  dot: true,
24
24
  cwd: process.cwd()
25
25
  }).forEach(filePath => {
@@ -12,14 +12,13 @@ var _fs = require("fs");
12
12
  var _stringManipulation = require("../utils/stringManipulation");
13
13
  var _stepsnippets = require("./stepGenerate/stepsnippets");
14
14
  const inputsParamterMap = new Map();
15
- function testSnippet(featureContent, constructedFilePath) {
16
- const relativeFilePath = _path.default.relative(process.cwd(), constructedFilePath);
15
+ function testSnippet(featureContent, featureFilePath) {
17
16
  var currentScenarios = [];
18
17
  featureContent.scenarios.forEach(scenario => {
19
18
  const _constructStep = scenarioSnippet(scenario);
20
- currentScenarioss.push(_constructStep);
19
+ currentScenarios.push(_constructStep);
21
20
  });
22
- return (0, _stepsnippets.testFile)(currentScenarios, relativeFilePath);
21
+ return (0, _stepsnippets.testFile)(currentScenarios, featureFilePath);
23
22
  }
24
23
  function extactStepArgs(step) {
25
24
  var inputParam = [];
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _babelJest = _interopRequireDefault(require("babel-jest"));
9
- var _default = exports.default = _babelJest.default.createTransformer({
9
+ var _default = _babelJest.default.createTransformer({
10
10
  presets: [require.resolve('@babel/preset-env'), require.resolve('@babel/preset-react')],
11
11
  plugins: [require.resolve('babel-plugin-transform-dynamic-import')]
12
- });
12
+ });
13
+ exports.default = _default;
@@ -4,4 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CUSTOM_COMMANDS = void 0;
7
- const CUSTOM_COMMANDS = exports.CUSTOM_COMMANDS = ['mode', 'tags'];
7
+ const CUSTOM_COMMANDS = ['mode', 'tags'];
8
+ exports.CUSTOM_COMMANDS = CUSTOM_COMMANDS;
@@ -3,13 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.When = exports.Then = exports.Given = void 0;
7
- Object.defineProperty(exports, "createBdd", {
8
- enumerable: true,
9
- get: function () {
10
- return _bddFramework.createBdd;
11
- }
12
- });
13
6
  Object.defineProperty(exports, "expect", {
14
7
  enumerable: true,
15
8
  get: function () {
@@ -17,9 +10,10 @@ Object.defineProperty(exports, "expect", {
17
10
  }
18
11
  });
19
12
  exports.test = void 0;
20
- var _bddFramework = require("../../bdd-framework");
21
13
  var _test = require("@playwright/test");
22
14
  var _readConfigFile = require("./readConfigFile");
15
+ // import { createBdd, test as bddBase } from '../../bdd-framework';
16
+
23
17
  // function test(descrition, callback) {
24
18
  // return test(descrition, ({ page }) => {
25
19
  // const { locator, ...custompage } = page
@@ -54,8 +48,8 @@ const {
54
48
  additionalPages,
55
49
  bddMode
56
50
  } = (0, _readConfigFile.generateConfigFromFile)();
57
- let base = bddMode ? _bddFramework.test : _test.test;
58
- const test = exports.test = base.extend({
51
+ let base = bddMode ? bddBase : _test.test;
52
+ const test = base.extend({
59
53
  page: async ({
60
54
  page
61
55
  }, use) => {
@@ -91,6 +85,7 @@ const test = exports.test = base.extend({
91
85
  // await page;
92
86
  // });
93
87
  },
88
+
94
89
  context: async ({
95
90
  context
96
91
  }, use) => {
@@ -100,11 +95,6 @@ const test = exports.test = base.extend({
100
95
  },
101
96
  ...additionalPages
102
97
  });
103
- const {
104
- Given,
105
- When,
106
- Then
107
- } = (0, _bddFramework.createBdd)();
108
- exports.Then = Then;
109
- exports.When = When;
110
- exports.Given = Given;
98
+
99
+ // const { Given, When, Then } = createBdd();
100
+ exports.test = test;
@@ -11,7 +11,8 @@ exports.isUserConfigFileAvailable = isUserConfigFileAvailable;
11
11
  var _fs = require("fs");
12
12
  var _path = _interopRequireDefault(require("path"));
13
13
  var _logger = require("../../utils/logger");
14
- const fileName = exports.fileName = 'uat.config.js';
14
+ const fileName = 'uat.config.js';
15
+ exports.fileName = fileName;
15
16
  function getDefaultConfig() {
16
17
  return {
17
18
  browsers: ['Chrome'],
@@ -34,10 +34,8 @@ const projects = (0, _configUtils.getProjects)({
34
34
  testTimeout,
35
35
  viewport
36
36
  });
37
- const testDir = (0, _configUtils.getTestDir)(bddMode, process.cwd(), {
38
- featureFilesFolder,
39
- stepDefinitionsFolder
40
- });
37
+ // const testDir = getTestDir(bddMode, process.cwd(), { featureFilesFolder, stepDefinitionsFolder });
38
+ const testDir = _path.default.resolve(process.cwd(), 'uat', 'feature-gen');
41
39
  function getPlaywrightConfig() {
42
40
  globalThis.globalStepMap = new Map();
43
41
  (0, _runner.stepFileMap)();
@@ -76,4 +74,5 @@ function getPlaywrightConfig() {
76
74
  }, ...projects] : [...projects]
77
75
  };
78
76
  }
79
- var _default = exports.default = (0, _test.defineConfig)(getPlaywrightConfig());
77
+ var _default = (0, _test.defineConfig)(getPlaywrightConfig());
78
+ exports.default = _default;
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getProjects = getProjects;
8
- exports.getTestDir = getTestDir;
9
8
  var _test = require("@playwright/test");
10
9
  var _path = _interopRequireDefault(require("path"));
11
10
  var _readConfigFile = require("../readConfigFile");
12
- var _bddFramework = require("../../../bdd-framework");
11
+ // import { defineBddConfig } from '../../../bdd-framework';
12
+
13
13
  function getBrowserConfig({
14
14
  browserName,
15
15
  isAuthMode,
@@ -98,14 +98,15 @@ function getProjects({
98
98
  viewport
99
99
  })).filter(Boolean);
100
100
  }
101
- function getTestDir(bddMode, cwd, {
102
- stepDefinitionsFolder
103
- }) {
104
- return bddMode ? (0, _bddFramework.defineBddConfig)({
105
- paths: [_path.default.join(cwd, 'uat', '**', '*.feature')],
106
- import: [_path.default.join(cwd, 'uat', '**', stepDefinitionsFolder, '*.spec.js')],
107
- featuresRoot: _path.default.join(cwd, 'uat'),
108
- outputDir: _path.default.join(cwd, 'uat', '.features-gen'),
109
- publish: true
110
- }) : _path.default.join(cwd, 'uat');
111
- }
101
+
102
+ // function getTestDir(bddMode, cwd, { stepDefinitionsFolder }) {
103
+ // return bddMode
104
+ // ? defineBddConfig({
105
+ // paths: [path.join(cwd, 'uat', '**', '*.feature')],
106
+ // import: [path.join(cwd, 'uat', '**', stepDefinitionsFolder, '*.spec.js')],
107
+ // featuresRoot: path.join(cwd, 'uat'),
108
+ // outputDir: path.join(cwd, 'uat', '.features-gen'),
109
+ // publish: true,
110
+ // })
111
+ // : path.join(cwd, 'uat');
112
+ // }
@@ -31,32 +31,36 @@ function getPlaywrightArgs(userArgsObject, debug, bddMode, tagArgs, headless) {
31
31
  }
32
32
  return playwrightArgs;
33
33
  }
34
- function runPreprocessing(tagArgs, configPath) {
35
- const beforeCommand = 'node';
36
- const bddGenPath = _path.default.resolve(__dirname, '../', '../', 'bdd-framework', 'cli', 'index.js');
37
- const beforeArgs = [bddGenPath, '-c', configPath];
38
- if (tagArgs) {
39
- beforeArgs.push('--tags');
40
- beforeArgs.push(tagArgs);
41
- }
42
- return new Promise((resolve, reject) => {
43
- const childProcessForPreprocessing = (0, _child_process.spawn)(beforeCommand, beforeArgs, {
44
- stdio: 'inherit'
45
- });
46
- childProcessForPreprocessing.on('error', data => {
47
- _logger.Logger.log(_logger.Logger.FAILURE_TYPE, data);
48
- reject();
49
- });
50
- childProcessForPreprocessing.on('exit', code => {
51
- if (code === 0) {
52
- _logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Feature Files Processed Successfully');
53
- resolve();
54
- } else {
55
- reject(`BddGen exited with code ${code}`);
56
- }
57
- });
58
- });
59
- }
34
+
35
+ // function runPreprocessing(tagArgs, configPath) {
36
+ // const beforeCommand = 'node';
37
+ // const bddGenPath = path.resolve(__dirname, '../', '../', 'bdd-framework', 'cli', 'index.js');
38
+ // const beforeArgs = [bddGenPath, '-c', configPath];
39
+
40
+ // if (tagArgs) {
41
+ // beforeArgs.push('--tags');
42
+ // beforeArgs.push(tagArgs);
43
+ // }
44
+
45
+ // return new Promise((resolve, reject) => {
46
+ // const childProcessForPreprocessing = spawn(beforeCommand, beforeArgs, { stdio: 'inherit' });
47
+
48
+ // childProcessForPreprocessing.on('error', (data) => {
49
+ // Logger.log(Logger.FAILURE_TYPE, data);
50
+ // reject();
51
+ // });
52
+
53
+ // childProcessForPreprocessing.on('exit', (code) => {
54
+ // if (code === 0) {
55
+ // Logger.log(Logger.SUCCESS_TYPE, 'Feature Files Processed Successfully');
56
+ // resolve();
57
+ // } else {
58
+ // reject(`BddGen exited with code ${code}`);
59
+ // }
60
+ // });
61
+ // });
62
+ // }
63
+
60
64
  function runPlaywright(command, args) {
61
65
  return new Promise((resolve, reject) => {
62
66
  const childProcessForRunningPlaywright = (0, _child_process.spawn)(command, args, {
@@ -105,9 +109,11 @@ function main() {
105
109
  (0, _main.cucumberBDDtoTestFile)();
106
110
  // promises.push(runPreprocessing(tagArgs, configPath));
107
111
  }
112
+
108
113
  Promise.all(promises).then(() => runPlaywright(command, args)).catch(err => {
109
114
  _logger.Logger.log(_logger.Logger.FAILURE_TYPE, err);
110
115
  process.exit();
111
116
  });
112
117
  }
113
- var _default = exports.default = main;
118
+ var _default = main;
119
+ exports.default = _default;
@@ -1 +1 @@
1
- export * from './bdd-framework/decorators';
1
+ // export * from './bdd-framework/decorators';
@@ -1,16 +1,2 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _decorators = require("./bdd-framework/decorators");
7
- Object.keys(_decorators).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _decorators[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _decorators[key];
14
- }
15
- });
16
- });
1
+ // export * from './bdd-framework/decorators';
2
+ "use strict";
@@ -108,6 +108,7 @@ function generateSpecFileContent({
108
108
  });
109
109
  //specContent += `});\n\n`;
110
110
  }
111
+
111
112
  return specContent;
112
113
  }
113
114
  function updateExistingSpecFile({
@@ -54,4 +54,5 @@ class LoggerImpl {
54
54
  this.consoleLogger.log(`${color[0]}${message}${color[1]}`);
55
55
  }
56
56
  }
57
- const Logger = exports.Logger = new LoggerImpl();
57
+ const Logger = new LoggerImpl();
58
+ exports.Logger = Logger;
@@ -5,7 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.delimiters = void 0;
7
7
  exports.findDelimiterFromStep = findDelimiterFromStep;
8
- const delimiters = exports.delimiters = ["Given", "When", "Then", "And"];
8
+ const delimiters = ["Given", "When", "Then", "And"];
9
+ exports.delimiters = delimiters;
9
10
  function findDelimiterFromStep(step) {
10
11
  return delimiters.find(delimiter => step.includes(delimiter));
11
12
  }