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

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 (72) hide show
  1. package/build/bdd-framework/cli/commands/env.js +42 -0
  2. package/build/bdd-framework/cli/commands/export.js +47 -0
  3. package/build/bdd-framework/cli/commands/test.js +60 -0
  4. package/build/bdd-framework/cli/index.js +11 -0
  5. package/build/bdd-framework/cli/options.js +19 -0
  6. package/build/bdd-framework/cli/worker.js +13 -0
  7. package/build/bdd-framework/config/dir.js +27 -0
  8. package/build/bdd-framework/config/env.js +49 -0
  9. package/build/bdd-framework/config/index.js +90 -0
  10. package/build/bdd-framework/cucumber/buildStepDefinition.js +43 -0
  11. package/build/bdd-framework/cucumber/gherkin.d.js +5 -0
  12. package/build/bdd-framework/cucumber/gherkin.d.ts +45 -0
  13. package/build/bdd-framework/cucumber/loadConfig.js +17 -0
  14. package/build/bdd-framework/cucumber/loadFeatures.js +39 -0
  15. package/build/bdd-framework/cucumber/loadSnippetBuilder.js +20 -0
  16. package/build/bdd-framework/cucumber/loadSources.js +57 -0
  17. package/build/bdd-framework/cucumber/loadSteps.js +35 -0
  18. package/build/bdd-framework/decorators.js +18 -0
  19. package/build/bdd-framework/gen/formatter.js +88 -0
  20. package/build/bdd-framework/gen/i18n.js +35 -0
  21. package/build/bdd-framework/gen/index.js +163 -0
  22. package/build/bdd-framework/gen/poms.js +46 -0
  23. package/build/bdd-framework/gen/testFile.js +356 -0
  24. package/build/bdd-framework/gen/testNode.js +48 -0
  25. package/build/bdd-framework/gen/testPoms.js +123 -0
  26. package/build/bdd-framework/index.js +45 -0
  27. package/build/bdd-framework/playwright/fixtureParameterNames.js +77 -0
  28. package/build/bdd-framework/playwright/getLocationInFile.js +46 -0
  29. package/build/bdd-framework/playwright/loadConfig.js +42 -0
  30. package/build/bdd-framework/playwright/testTypeImpl.js +57 -0
  31. package/build/bdd-framework/playwright/transform.js +80 -0
  32. package/build/bdd-framework/playwright/types.js +5 -0
  33. package/build/bdd-framework/playwright/utils.js +37 -0
  34. package/build/bdd-framework/run/bddFixtures.js +107 -0
  35. package/build/bdd-framework/run/bddWorld.js +88 -0
  36. package/build/bdd-framework/snippets/index.js +134 -0
  37. package/build/bdd-framework/snippets/snippetSyntax.js +41 -0
  38. package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +26 -0
  39. package/build/bdd-framework/snippets/snippetSyntaxTs.js +18 -0
  40. package/build/bdd-framework/stepDefinitions/createBdd.js +49 -0
  41. package/build/bdd-framework/stepDefinitions/createDecorators.js +108 -0
  42. package/build/bdd-framework/stepDefinitions/decorators/poms.js +64 -0
  43. package/build/bdd-framework/stepDefinitions/decorators/steps.js +93 -0
  44. package/build/bdd-framework/stepDefinitions/defineStep.js +61 -0
  45. package/build/bdd-framework/stepDefinitions/stepConfig.js +24 -0
  46. package/build/bdd-framework/utils/exit.js +54 -0
  47. package/build/bdd-framework/utils/index.js +44 -0
  48. package/build/bdd-framework/utils/jsStringWrap.js +44 -0
  49. package/build/bdd-framework/utils/logger.js +28 -0
  50. package/build/bdd-poc/core-runner/exportMethods.js +6 -12
  51. package/build/bdd-poc/core-runner/stepDefinitions.js +3 -1
  52. package/build/bdd-poc/test/cucumber/featureFileParer.js +5 -4
  53. package/build/bdd-poc/test/stepGenerate/stepFileGenerate.js +9 -8
  54. package/build/bdd-poc/test/stepGenerate/stepsnippets.js +1 -2
  55. package/build/bdd-poc/test/testDataMap.js +2 -2
  56. package/build/bdd-poc/test/testStructure.js +4 -3
  57. package/build/core/jest/preprocessor/jsPreprocessor.js +2 -3
  58. package/build/core/playwright/custom-commands.js +1 -2
  59. package/build/core/playwright/index.js +18 -8
  60. package/build/core/playwright/readConfigFile.js +1 -2
  61. package/build/core/playwright/setup/config-creator.js +7 -10
  62. package/build/core/playwright/setup/config-utils.js +13 -14
  63. package/build/core/playwright/test-runner.js +28 -36
  64. package/build/decorators.d.ts +1 -1
  65. package/build/decorators.js +16 -2
  66. package/build/index.js +14 -10
  67. package/build/parser/parser.js +0 -1
  68. package/build/utils/logger.js +1 -2
  69. package/build/utils/stepDefinitionsFormatter.js +1 -2
  70. package/npm-shrinkwrap.json +570 -4
  71. package/package.json +3 -3
  72. package/build/bdd-poc/runner.js +0 -19
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getStepConfig = getStepConfig;
7
+ exports.isDecorator = isDecorator;
8
+ exports.isPlaywrightStyle = isPlaywrightStyle;
9
+ /**
10
+ * Playwright-bdd's step config.
11
+ */
12
+ function getStepConfig(step) {
13
+ return step.code.stepConfig;
14
+ }
15
+ function isDecorator(stepConfig) {
16
+ return Boolean(stepConfig === null || stepConfig === void 0 ? void 0 : stepConfig.pomNode);
17
+ }
18
+ /**
19
+ * Cucumber-style steps don't have stepConfig
20
+ * b/c they created directly via cucumber's Given, When, Then.
21
+ */
22
+ function isPlaywrightStyle(stepConfig) {
23
+ return Boolean(stepConfig);
24
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.exit = exit;
7
+ exports.withExitHandler = withExitHandler;
8
+ var _logger = require("./logger");
9
+ var _worker_threads = require("worker_threads");
10
+ /**
11
+ * Exit utils.
12
+ *
13
+ * When calling process.exit() in worker thread used for file generation,
14
+ * logs are not flushed (https://github.com/vitalets/playwright-bdd/issues/59).
15
+ * That's why instead of process.exit we throw ExitError
16
+ * that just sets process.exitCode = 1 and allow program to exit normally.
17
+ *
18
+ * On the other hand, when running in main thread, especially inside Playwright,
19
+ * thrown error is captured by Playwright and show with additional messages (e.g. no tests found).
20
+ * That's why in main thread we to call process.exit() to show only needed error.
21
+ *
22
+ * Relevant discussions:
23
+ * - https://github.com/nodejs/node/issues/6379
24
+ * - https://github.com/nodejs/node-v0.x-archive/issues/3737
25
+ * - https://github.com/cucumber/cucumber-js/pull/123
26
+ */
27
+
28
+ class ExitError extends Error {
29
+ get stack() {
30
+ return '';
31
+ }
32
+ }
33
+ async function withExitHandler(fn) {
34
+ try {
35
+ return await fn();
36
+ } catch (e) {
37
+ if (e instanceof ExitError) {
38
+ process.exitCode = 1;
39
+ } else {
40
+ throw e;
41
+ }
42
+ }
43
+ }
44
+ function exit(...messages) {
45
+ messages = messages.filter(Boolean);
46
+ if (_worker_threads.isMainThread) {
47
+ if (messages.length) {
48
+ _logger.logger.error('Error:', ...messages);
49
+ }
50
+ process.exit(1);
51
+ } else {
52
+ throw new ExitError(messages.join(' '));
53
+ }
54
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getPackageVersion = getPackageVersion;
8
+ exports.getSymbolByName = getSymbolByName;
9
+ exports.removeDuplicates = removeDuplicates;
10
+ exports.resolvePackageRoot = resolvePackageRoot;
11
+ exports.template = template;
12
+ var _fs = _interopRequireDefault(require("fs"));
13
+ var _path = _interopRequireDefault(require("path"));
14
+ // See: https://stackoverflow.com/questions/50453640/how-can-i-get-the-value-of-a-symbol-property
15
+ function getSymbolByName(target, name) {
16
+ const ownKeys = Reflect.ownKeys(target);
17
+ const symbol = ownKeys.find(key => key.toString() === `Symbol(${name})`);
18
+ if (!symbol) {
19
+ throw new Error(`Symbol "${name}" not found in target. ownKeys: ${ownKeys}`);
20
+ }
21
+ return symbol;
22
+ }
23
+ /**
24
+ * Inserts params into template.
25
+ * Params defined as <param>.
26
+ */
27
+ function template(t, params = {}) {
28
+ return t.replace(/<(.+?)>/g, (match, key) => {
29
+ return params[key] !== undefined ? String(params[key]) : match;
30
+ });
31
+ }
32
+ function removeDuplicates(arr) {
33
+ return [...new Set(arr)];
34
+ }
35
+ function resolvePackageRoot(packageName) {
36
+ const packageJsonPath = require.resolve(`${packageName}/package.json`);
37
+ return _path.default.dirname(packageJsonPath);
38
+ }
39
+ function getPackageVersion(packageName) {
40
+ const packageRoot = resolvePackageRoot(packageName);
41
+ const packageJsonPath = _path.default.join(packageRoot, 'package.json');
42
+ const packageJson = JSON.parse(_fs.default.readFileSync(packageJsonPath, 'utf8'));
43
+ return packageJson.version || '';
44
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.jsStringWrap = jsStringWrap;
7
+ /**
8
+ * Adopted version of https://github.com/joliss/js-string-escape
9
+ * - added support of backticks
10
+ * - added 'quotes' option to indicate which quotes to escape
11
+ * - wrap result string with provided quotes
12
+ *
13
+ * Considered alternative is https://github.com/mathiasbynens/jsesc,
14
+ * but it provides additional functionality and much slower
15
+ * See: https://github.com/mathiasbynens/jsesc/issues/16
16
+ */
17
+ function jsStringWrap(str, {
18
+ quotes = 'single'
19
+ } = {}) {
20
+ const wrapQuote = quotes === 'single' ? "'" : quotes === 'double' ? '"' : '`';
21
+ // eslint-disable-next-line complexity
22
+ const escapedStr = ('' + str).replace(/["'`\\\n\r\u2028\u2029]/g, character => {
23
+ // Escape all characters not included in SingleStringCharacters and
24
+ // DoubleStringCharacters on
25
+ // http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4
26
+ switch (character) {
27
+ case wrapQuote:
28
+ case '\\':
29
+ return '\\' + character;
30
+ // Four possible LineTerminator characters need to be escaped:
31
+ case '\n':
32
+ return '\\n';
33
+ case '\r':
34
+ return '\\r';
35
+ case '\u2028':
36
+ return '\\u2028';
37
+ case '\u2029':
38
+ return '\\u2029';
39
+ default:
40
+ return character;
41
+ }
42
+ });
43
+ return `${wrapQuote}${escapedStr}${wrapQuote}`;
44
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.logger = exports.Logger = void 0;
7
+ /**
8
+ * Simple logger
9
+ */
10
+ class Logger {
11
+ options;
12
+ constructor(options = {}) {
13
+ this.options = options;
14
+ }
15
+ log(...args) {
16
+ if (this.options.verbose) console.log(...args);
17
+ }
18
+ warn(...args) {
19
+ // using log() to output warnings to stdout, not stderr
20
+ console.log(...args);
21
+ }
22
+ error(...args) {
23
+ console.error(...args);
24
+ }
25
+ }
26
+ // default logger
27
+ exports.Logger = Logger;
28
+ const logger = exports.logger = new Logger();
@@ -3,18 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.createBdd = createBdd;
6
+ exports.And = void 0;
7
+ exports.Given = Given;
8
+ exports.When = exports.Then = void 0;
7
9
  function Given(description, callback) {
8
10
  globalStepMap.set(description, callback);
9
11
  }
10
- const Then = Given;
11
- const When = Given;
12
- const And = Given;
13
- function createBdd() {
14
- return {
15
- Given,
16
- When,
17
- Then,
18
- And
19
- };
20
- }
12
+ const Then = exports.Then = Given;
13
+ const When = exports.When = Given;
14
+ const And = exports.And = Given;
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createNativeBDD = createNativeBDD;
7
+ var _testDataMap = require("../test/testDataMap");
8
+ (0, _testDataMap.testDataCreation)().then(data => globalThis.globalTestdata = data);
7
9
  function $Given(description) {
8
- const stepFunction = globalStepMap.get(description);
10
+ const stepFunction = globalStepMap[description];
9
11
  if (stepFunction === undefined) {
10
12
  process.exit(1);
11
13
  }
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.parseFeature = parseFeature;
7
- var _gherkin = require("@cucumber/gherkin");
8
+ var _gherkin = _interopRequireDefault(require("@cucumber/gherkin"));
8
9
  var _messages = require("@cucumber/messages");
9
10
  var uuidFn = _messages.IdGenerator.uuid();
10
- var builder = new _gherkin.AstBuilder(uuidFn);
11
- var matcher = new _gherkin.GherkinClassicTokenMatcher();
12
- var parser = new _gherkin.Parser(builder, matcher);
11
+ var builder = new _gherkin.default.AstBuilder(uuidFn);
12
+ var matcher = new _gherkin.default.GherkinClassicTokenMatcher();
13
+ var parser = new _gherkin.default.Parser(builder, matcher);
13
14
  function parseFeature(featureFileContent) {
14
15
  var _gherkinDocument$feat;
15
16
  var gherkinDocument = parser.parse(featureFileContent);
@@ -10,26 +10,27 @@ 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, featureFilePath) {
14
- const generatedFolderPath = _path.default.resolve(process.cwd(), 'uat', 'feature-gen');
13
+ async function stepFileCreation(featureContent, stepFilename, constructedFilePath) {
14
+ const generatedFolderPath = _path.default.resolve(process.cwd(), './feature-gen');
15
15
  if (!(0, _fs.existsSync)(generatedFolderPath)) {
16
- (0, _fs.mkdirSync)(generatedFolderPath, {
16
+ (0, _fs.mkdirSync)('./feature-gen', {
17
17
  recursive: true
18
18
  });
19
19
  }
20
- const stepsFilePath = _path.default.resolve(process.cwd(), 'uat', 'feature-gen', stepFilename);
21
- const stepsSnippets = (0, _testStructure.testSnippet)(featureContent, featureFilePath);
20
+ const stepsFilePath = _path.default.resolve(process.cwd(), 'feature-gen', stepFilename);
21
+ const stepsSnippets = (0, _testStructure.testSnippet)(featureContent, constructedFilePath);
22
22
  await (0, _fs.writeFileSync)(stepsFilePath, stepsSnippets);
23
23
  }
24
24
  function generateSpecFiles() {
25
- const featureFilePattern = _path.default.resolve(process.cwd(), 'uat', 'modules', '**', '**', '**', '**', '**', '**', '**', '**', '*.feature').split(`\\`).join('/');
26
- _fastGlob.default.globSync(featureFilePattern, {
25
+ const featureFilePath = _path.default.resolve(process.cwd(), 'uat', 'modules', '**', '**', '**', '**', '**', '**', '**', '**', '*.feature').split(`\\`).join('/');
26
+ _fastGlob.default.globSync(featureFilePath, {
27
27
  dot: true,
28
28
  cwd: process.cwd()
29
29
  }).forEach(filePath => {
30
+ console.log(filePath);
30
31
  const featurefilePath = _path.default.resolve(process.cwd(), filePath);
31
32
  const featureContent = (0, _featureFileParer.parseFeature)((0, _fs.readFileSync)(featurefilePath, 'utf-8'));
32
33
  const fileName = _path.default.basename(filePath).replace('.feature', '.spec.js');
33
- stepFileCreation(featureContent, fileName, filePath);
34
+ stepFileCreation(featureContent, fileName, featureFilePath);
34
35
  });
35
36
  }
@@ -8,8 +8,7 @@ exports.testCase = testCase;
8
8
  exports.testFile = testFile;
9
9
  exports.testStep = testStep;
10
10
  exports.testSuite = testSuite;
11
- const TESTING_LIBRARY = '@zohodesk/testinglibrary';
12
- exports.TESTING_LIBRARY = TESTING_LIBRARY;
11
+ const TESTING_LIBRARY = exports.TESTING_LIBRARY = '@zohodesk/testinglibrary';
13
12
  function testStep(keyword, description, browserObject, testData, options) {
14
13
  return `await $${keyword}('${description}')(${browserObject},${testData})\n`;
15
14
  }
@@ -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 actualStepFilePath = _path.default.resolve('uat', 'modules', '**', '**', '**', '**', '**', '*.spec.js').split('\\').join('/');
22
- await _fastGlob.default.globSync(actualStepFilePath, {
21
+ const featurePath = _path.default.resolve('uat', 'modules', '**', '**', '**', '**', '**', '*.feature');
22
+ await _fastGlob.default.globSync([featurePath], {
23
23
  dot: true,
24
24
  cwd: process.cwd()
25
25
  }).forEach(filePath => {
@@ -12,13 +12,14 @@ 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, featureFilePath) {
15
+ function testSnippet(featureContent, constructedFilePath) {
16
+ const relativeFilePath = _path.default.relative(process.cwd(), constructedFilePath);
16
17
  var currentScenarios = [];
17
18
  featureContent.scenarios.forEach(scenario => {
18
19
  const _constructStep = scenarioSnippet(scenario);
19
- currentScenarios.push(_constructStep);
20
+ currentScenarioss.push(_constructStep);
20
21
  });
21
- return (0, _stepsnippets.testFile)(currentScenarios, featureFilePath);
22
+ return (0, _stepsnippets.testFile)(currentScenarios, relativeFilePath);
22
23
  }
23
24
  function extactStepArgs(step) {
24
25
  var inputParam = [];
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _babelJest = _interopRequireDefault(require("babel-jest"));
9
- var _default = _babelJest.default.createTransformer({
9
+ var _default = exports.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
- });
13
- exports.default = _default;
12
+ });
@@ -4,5 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CUSTOM_COMMANDS = void 0;
7
- const CUSTOM_COMMANDS = ['mode', 'tags'];
8
- exports.CUSTOM_COMMANDS = CUSTOM_COMMANDS;
7
+ const CUSTOM_COMMANDS = exports.CUSTOM_COMMANDS = ['mode', 'tags'];
@@ -3,6 +3,13 @@
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
+ });
6
13
  Object.defineProperty(exports, "expect", {
7
14
  enumerable: true,
8
15
  get: function () {
@@ -10,10 +17,9 @@ Object.defineProperty(exports, "expect", {
10
17
  }
11
18
  });
12
19
  exports.test = void 0;
20
+ var _bddFramework = require("../../bdd-framework");
13
21
  var _test = require("@playwright/test");
14
22
  var _readConfigFile = require("./readConfigFile");
15
- // import { createBdd, test as bddBase } from '../../bdd-framework';
16
-
17
23
  // function test(descrition, callback) {
18
24
  // return test(descrition, ({ page }) => {
19
25
  // const { locator, ...custompage } = page
@@ -48,8 +54,8 @@ const {
48
54
  additionalPages,
49
55
  bddMode
50
56
  } = (0, _readConfigFile.generateConfigFromFile)();
51
- let base = bddMode ? bddBase : _test.test;
52
- const test = base.extend({
57
+ let base = bddMode ? _bddFramework.test : _test.test;
58
+ const test = exports.test = base.extend({
53
59
  page: async ({
54
60
  page
55
61
  }, use) => {
@@ -85,7 +91,6 @@ const test = base.extend({
85
91
  // await page;
86
92
  // });
87
93
  },
88
-
89
94
  context: async ({
90
95
  context
91
96
  }, use) => {
@@ -95,6 +100,11 @@ const test = base.extend({
95
100
  },
96
101
  ...additionalPages
97
102
  });
98
-
99
- // const { Given, When, Then } = createBdd();
100
- exports.test = test;
103
+ const {
104
+ Given,
105
+ When,
106
+ Then
107
+ } = (0, _bddFramework.createBdd)();
108
+ exports.Then = Then;
109
+ exports.When = When;
110
+ exports.Given = Given;
@@ -11,8 +11,7 @@ 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 = 'uat.config.js';
15
- exports.fileName = fileName;
14
+ const fileName = exports.fileName = 'uat.config.js';
16
15
  function getDefaultConfig() {
17
16
  return {
18
17
  browsers: ['Chrome'],
@@ -9,8 +9,8 @@ var _test = require("@playwright/test");
9
9
  var _path = _interopRequireDefault(require("path"));
10
10
  var _readConfigFile = require("../readConfigFile");
11
11
  var _configUtils = require("./config-utils");
12
+ var _main = require("../../../bdd-poc/main");
12
13
  var _testDataMap = require("../../../bdd-poc/test/testDataMap");
13
- var _runner = require("../../../bdd-poc/runner");
14
14
  const {
15
15
  browsers,
16
16
  trace,
@@ -34,14 +34,12 @@ const projects = (0, _configUtils.getProjects)({
34
34
  testTimeout,
35
35
  viewport
36
36
  });
37
- // const testDir = getTestDir(bddMode, process.cwd(), { featureFilesFolder, stepDefinitionsFolder });
38
- const testDir = _path.default.resolve(process.cwd(), 'uat', 'feature-gen');
37
+ const testDir = (0, _configUtils.getTestDir)(bddMode, process.cwd(), {
38
+ featureFilesFolder,
39
+ stepDefinitionsFolder
40
+ });
39
41
  function getPlaywrightConfig() {
40
- globalThis.globalStepMap = new Map();
41
- (0, _runner.stepFileMap)();
42
- (0, _testDataMap.testDataCreation)().then(inputs => {
43
- globalThis.globalTestdata = inputs;
44
- });
42
+ (0, _main.cucumberBDDtoTestFile)();
45
43
  return {
46
44
  testDir,
47
45
  outputDir: _path.default.join(process.cwd(), 'uat', 'test-results'),
@@ -74,5 +72,4 @@ function getPlaywrightConfig() {
74
72
  }, ...projects] : [...projects]
75
73
  };
76
74
  }
77
- var _default = (0, _test.defineConfig)(getPlaywrightConfig());
78
- exports.default = _default;
75
+ var _default = exports.default = (0, _test.defineConfig)(getPlaywrightConfig());
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getProjects = getProjects;
8
+ exports.getTestDir = getTestDir;
8
9
  var _test = require("@playwright/test");
9
10
  var _path = _interopRequireDefault(require("path"));
10
11
  var _readConfigFile = require("../readConfigFile");
11
- // import { defineBddConfig } from '../../../bdd-framework';
12
-
12
+ var _bddFramework = require("../../../bdd-framework");
13
13
  function getBrowserConfig({
14
14
  browserName,
15
15
  isAuthMode,
@@ -98,15 +98,14 @@ function getProjects({
98
98
  viewport
99
99
  })).filter(Boolean);
100
100
  }
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
- // }
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
+ }
@@ -13,7 +13,6 @@ var _envInitializer = require("./env-initializer");
13
13
  var _logger = require("../../utils/logger");
14
14
  var _readConfigFile = require("./readConfigFile");
15
15
  var _rootPath = require("../../utils/rootPath");
16
- var _main = require("../../bdd-poc/main");
17
16
  function parseUserArgs() {
18
17
  return (0, _cliArgsToObject.cliArgsToObject)(process.argv.slice(2));
19
18
  }
@@ -31,36 +30,32 @@ function getPlaywrightArgs(userArgsObject, debug, bddMode, tagArgs, headless) {
31
30
  }
32
31
  return playwrightArgs;
33
32
  }
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
-
33
+ function runPreprocessing(tagArgs, configPath) {
34
+ const beforeCommand = 'node';
35
+ const bddGenPath = _path.default.resolve(__dirname, '../', '../', 'bdd-framework', 'cli', 'index.js');
36
+ const beforeArgs = [bddGenPath, '-c', configPath];
37
+ if (tagArgs) {
38
+ beforeArgs.push('--tags');
39
+ beforeArgs.push(tagArgs);
40
+ }
41
+ return new Promise((resolve, reject) => {
42
+ const childProcessForPreprocessing = (0, _child_process.spawn)(beforeCommand, beforeArgs, {
43
+ stdio: 'inherit'
44
+ });
45
+ childProcessForPreprocessing.on('error', data => {
46
+ _logger.Logger.log(_logger.Logger.FAILURE_TYPE, data);
47
+ reject();
48
+ });
49
+ childProcessForPreprocessing.on('exit', code => {
50
+ if (code === 0) {
51
+ _logger.Logger.log(_logger.Logger.SUCCESS_TYPE, 'Feature Files Processed Successfully');
52
+ resolve();
53
+ } else {
54
+ reject(`BddGen exited with code ${code}`);
55
+ }
56
+ });
57
+ });
58
+ }
64
59
  function runPlaywright(command, args) {
65
60
  return new Promise((resolve, reject) => {
66
61
  const childProcessForRunningPlaywright = (0, _child_process.spawn)(command, args, {
@@ -106,14 +101,11 @@ function main() {
106
101
  const args = ['test', '--config', configPath].concat(playwrightArgs);
107
102
  let promises = [];
108
103
  if (bddMode) {
109
- (0, _main.cucumberBDDtoTestFile)();
110
- // promises.push(runPreprocessing(tagArgs, configPath));
104
+ promises.push(runPreprocessing(tagArgs, configPath));
111
105
  }
112
-
113
106
  Promise.all(promises).then(() => runPlaywright(command, args)).catch(err => {
114
107
  _logger.Logger.log(_logger.Logger.FAILURE_TYPE, err);
115
108
  process.exit();
116
109
  });
117
110
  }
118
- var _default = main;
119
- exports.default = _default;
111
+ var _default = exports.default = main;
@@ -1 +1 @@
1
- // export * from './bdd-framework/decorators';
1
+ export * from './bdd-framework/decorators';
@@ -1,2 +1,16 @@
1
- // export * from './bdd-framework/decorators';
2
- "use strict";
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
+ });