@zohodesk/testinglibrary 0.4.50-experimental → 0.4.52-experimental

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 (133) hide show
  1. package/.gitlab-ci.yml +2 -2
  2. package/README.md +54 -1
  3. package/build/core/playwright/clear-caches.js +7 -0
  4. package/build/core/playwright/fixtures.js +24 -0
  5. package/build/core/playwright/helpers/configFileNameProvider.js +1 -1
  6. package/build/core/playwright/helpers/fileMutex.js +7 -7
  7. package/build/core/playwright/index.js +10 -23
  8. package/build/core/playwright/runner/SpawnRunner.js +2 -2
  9. package/build/core/playwright/setup/config-creator.js +15 -9
  10. package/build/core/playwright/setup/config-utils.js +8 -25
  11. package/build/core/playwright/tagProcessor.js +22 -34
  12. package/build/core/playwright/test-runner.js +2 -2
  13. package/build/decorators.d.ts +1 -1
  14. package/build/decorators.js +1 -1
  15. package/build/index.js +6 -0
  16. package/build/setup-folder-structure/samples/accountLogin-sample.js +19 -0
  17. package/build/setup-folder-structure/samples/actors-index.js +2 -0
  18. package/build/setup-folder-structure/samples/auth-setup-sample.js +10 -68
  19. package/build/setup-folder-structure/samples/editions-index.js +3 -0
  20. package/build/setup-folder-structure/samples/free-sample.json +25 -0
  21. package/build/setup-folder-structure/samples/settings.json +7 -0
  22. package/build/setup-folder-structure/samples/testSetup-sample.js +14 -0
  23. package/build/setup-folder-structure/samples/uat-config-sample.js +3 -1
  24. package/build/setup-folder-structure/setupProject.js +22 -5
  25. package/build/test/core/playwright/__tests__/tagProcessor.test.js +18 -19
  26. package/build/test/core/playwright/helpers/__tests__/configFileNameProvider.test.js +1 -1
  27. package/npm-shrinkwrap.json +7632 -3338
  28. package/package.json +10 -9
  29. package/playwright.config.js +0 -48
  30. package/build/bdd-framework/cli/commands/env.js +0 -42
  31. package/build/bdd-framework/cli/commands/export.js +0 -62
  32. package/build/bdd-framework/cli/commands/test.js +0 -64
  33. package/build/bdd-framework/cli/index.js +0 -11
  34. package/build/bdd-framework/cli/options.js +0 -19
  35. package/build/bdd-framework/cli/worker.js +0 -13
  36. package/build/bdd-framework/config/configDir.js +0 -35
  37. package/build/bdd-framework/config/enrichReporterData.js +0 -23
  38. package/build/bdd-framework/config/env.js +0 -50
  39. package/build/bdd-framework/config/index.js +0 -94
  40. package/build/bdd-framework/config/lang.js +0 -14
  41. package/build/bdd-framework/cucumber/buildStepDefinition.js +0 -43
  42. package/build/bdd-framework/cucumber/createTestStep.js +0 -43
  43. package/build/bdd-framework/cucumber/formatter/EventDataCollector.js +0 -126
  44. package/build/bdd-framework/cucumber/formatter/GherkinDocumentParser.js +0 -72
  45. package/build/bdd-framework/cucumber/formatter/PickleParser.js +0 -25
  46. package/build/bdd-framework/cucumber/formatter/durationHelpers.js +0 -13
  47. package/build/bdd-framework/cucumber/formatter/getColorFns.js +0 -57
  48. package/build/bdd-framework/cucumber/formatter/index.js +0 -16
  49. package/build/bdd-framework/cucumber/formatter/locationHelpers.js +0 -16
  50. package/build/bdd-framework/cucumber/loadConfig.js +0 -17
  51. package/build/bdd-framework/cucumber/loadFeatures.js +0 -70
  52. package/build/bdd-framework/cucumber/loadSnippetBuilder.js +0 -20
  53. package/build/bdd-framework/cucumber/loadSteps.js +0 -47
  54. package/build/bdd-framework/cucumber/resolveFeaturePaths.js +0 -62
  55. package/build/bdd-framework/cucumber/stepArguments.js +0 -21
  56. package/build/bdd-framework/cucumber/types.js +0 -5
  57. package/build/bdd-framework/cucumber/valueChecker.js +0 -23
  58. package/build/bdd-framework/decorators.js +0 -18
  59. package/build/bdd-framework/gen/fixtures.js +0 -48
  60. package/build/bdd-framework/gen/formatter.js +0 -167
  61. package/build/bdd-framework/gen/i18n.js +0 -39
  62. package/build/bdd-framework/gen/index.js +0 -197
  63. package/build/bdd-framework/gen/specialTags.js +0 -70
  64. package/build/bdd-framework/gen/testFile.js +0 -470
  65. package/build/bdd-framework/gen/testMeta.js +0 -60
  66. package/build/bdd-framework/gen/testNode.js +0 -35
  67. package/build/bdd-framework/gen/testPoms.js +0 -133
  68. package/build/bdd-framework/hooks/scenario.js +0 -130
  69. package/build/bdd-framework/hooks/worker.js +0 -89
  70. package/build/bdd-framework/index.js +0 -52
  71. package/build/bdd-framework/playwright/fixtureParameterNames.js +0 -93
  72. package/build/bdd-framework/playwright/getLocationInFile.js +0 -79
  73. package/build/bdd-framework/playwright/loadConfig.js +0 -42
  74. package/build/bdd-framework/playwright/loadUtils.js +0 -33
  75. package/build/bdd-framework/playwright/testTypeImpl.js +0 -79
  76. package/build/bdd-framework/playwright/transform.js +0 -88
  77. package/build/bdd-framework/playwright/types.js +0 -12
  78. package/build/bdd-framework/playwright/utils.js +0 -56
  79. package/build/bdd-framework/reporter/cucumber/base.js +0 -52
  80. package/build/bdd-framework/reporter/cucumber/custom.js +0 -73
  81. package/build/bdd-framework/reporter/cucumber/helper.js +0 -12
  82. package/build/bdd-framework/reporter/cucumber/html.js +0 -40
  83. package/build/bdd-framework/reporter/cucumber/index.js +0 -74
  84. package/build/bdd-framework/reporter/cucumber/json.js +0 -312
  85. package/build/bdd-framework/reporter/cucumber/junit.js +0 -205
  86. package/build/bdd-framework/reporter/cucumber/message.js +0 -20
  87. package/build/bdd-framework/reporter/cucumber/messagesBuilder/AttachmentMapper.js +0 -82
  88. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Builder.js +0 -197
  89. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocument.js +0 -43
  90. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocumentClone.js +0 -52
  91. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocuments.js +0 -105
  92. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Hook.js +0 -70
  93. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Meta.js +0 -45
  94. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Pickles.js +0 -27
  95. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Projects.js +0 -38
  96. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCase.js +0 -128
  97. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRun.js +0 -154
  98. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRunHooks.js +0 -123
  99. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepAttachments.js +0 -67
  100. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepRun.js +0 -114
  101. package/build/bdd-framework/reporter/cucumber/messagesBuilder/index.js +0 -30
  102. package/build/bdd-framework/reporter/cucumber/messagesBuilder/pwStepUtils.js +0 -70
  103. package/build/bdd-framework/reporter/cucumber/messagesBuilder/timing.js +0 -35
  104. package/build/bdd-framework/reporter/cucumber/messagesBuilder/types.js +0 -5
  105. package/build/bdd-framework/run/StepInvoker.js +0 -69
  106. package/build/bdd-framework/run/bddData/index.js +0 -59
  107. package/build/bdd-framework/run/bddData/types.js +0 -5
  108. package/build/bdd-framework/run/bddFixtures.js +0 -192
  109. package/build/bdd-framework/run/bddWorld.js +0 -79
  110. package/build/bdd-framework/run/bddWorldInternal.js +0 -11
  111. package/build/bdd-framework/snippets/index.js +0 -132
  112. package/build/bdd-framework/snippets/snippetSyntax.js +0 -43
  113. package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +0 -26
  114. package/build/bdd-framework/snippets/snippetSyntaxTs.js +0 -18
  115. package/build/bdd-framework/stepDefinitions/createBdd.js +0 -66
  116. package/build/bdd-framework/stepDefinitions/decorators/class.js +0 -68
  117. package/build/bdd-framework/stepDefinitions/decorators/steps.js +0 -99
  118. package/build/bdd-framework/stepDefinitions/defineStep.js +0 -62
  119. package/build/bdd-framework/stepDefinitions/stepConfig.js +0 -24
  120. package/build/bdd-framework/steps/createBdd.js +0 -78
  121. package/build/bdd-framework/steps/decorators/class.js +0 -68
  122. package/build/bdd-framework/steps/decorators/steps.js +0 -98
  123. package/build/bdd-framework/steps/defineStep.js +0 -62
  124. package/build/bdd-framework/steps/stepConfig.js +0 -24
  125. package/build/bdd-framework/utils/AutofillMap.js +0 -20
  126. package/build/bdd-framework/utils/exit.js +0 -62
  127. package/build/bdd-framework/utils/index.js +0 -93
  128. package/build/bdd-framework/utils/jsStringWrap.js +0 -44
  129. package/build/bdd-framework/utils/logger.js +0 -30
  130. package/build/bdd-framework/utils/stripAnsiEscapes.js +0 -20
  131. package/build/setup-folder-structure/samples/authUsers-sample.json +0 -9
  132. package/build/setup-folder-structure/samples/env-config-sample.json +0 -21
  133. package/unit_reports/unit-report.html +0 -260
@@ -0,0 +1,14 @@
1
+ /* eslint-disable global-require */
2
+ const accountLogin = require('./accountLogin');
3
+
4
+ async function verifyPageIsLoaded({page}) {
5
+
6
+ //Implement your validation logic here
7
+ //Refer deskclientapp testSetup.js
8
+ }
9
+
10
+ module.exports = {
11
+ loginSteps:accountLogin,
12
+ validateLogin:verifyPageIsLoaded,
13
+ page:()=>{}
14
+ };
@@ -1,3 +1,4 @@
1
+ const testSetup = require('../../fixtures/testSetup');
1
2
  /**
2
3
  * @typedef {Object|null} viewportConfig
3
4
  * @property {number} width - width of the viewport
@@ -40,5 +41,6 @@ module.exports = {
40
41
  bddMode: true,
41
42
  featureFilesFolder: 'feature-files',
42
43
  stepDefinitionsFolder: 'steps',
43
- viewport: { width: 1280, height: 720 }
44
+ viewport: { width: 1280, height: 720 },
45
+ testSetup
44
46
  }
@@ -10,8 +10,9 @@ var _path = _interopRequireDefault(require("path"));
10
10
  var _logger = require("../utils/logger");
11
11
  function getScriptsToBeAdded() {
12
12
  return {
13
- "uat": "ZDTestingFramework test --mode=prod --headed",
14
- "uat-debug": "ZDTestingFramework test --mode=prod --debug",
13
+ "uat": "ZDTestingFramework test --mode=dev --headed",
14
+ "uat-debug": "ZDTestingFramework test --mode=dev --debug",
15
+ "uat-validate": "ZDTestingFramework validate",
15
16
  "uat-report": "ZDTestingFramework report --port=9009",
16
17
  "codegen": "ZDTestingFramework codegen deskclientapp.localzoho.com/agent"
17
18
  };
@@ -71,8 +72,11 @@ function createAuthenticationFile() {
71
72
  });
72
73
  }
73
74
  (0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'auth.setup.js'), getSetupFileAsString('auth-setup-sample.js'), null, 2);
74
- (0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'authUsers.json'), getSetupFileAsString('authUsers-sample.json'), null, 2);
75
75
  _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating Authentication File ....');
76
+ (0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'accountLogin.js'), getSetupFileAsString('accountLogin-sample.js'), null, 2);
77
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating login script File ....');
78
+ (0, _fs.writeFileSync)(_path.default.resolve(process.cwd(), 'uat', 'fixtures', 'testSetup.js'), getSetupFileAsString('testSetup-sample.js'), null, 2);
79
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating testSetup File ....');
76
80
  } catch (err) {
77
81
  _logger.Logger.error(err);
78
82
  _logger.Logger.log(_logger.Logger.FAILURE_TYPE, 'Something went wrong ! Folder not Created. Please re-initialize npm init-uat');
@@ -84,8 +88,21 @@ function createAuthenticationFile() {
84
88
  function createConfigJson() {
85
89
  const uatFolder = _path.default.resolve(process.cwd(), 'uat');
86
90
  if ((0, _fs.existsSync)(uatFolder)) {
87
- _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating env-config file inside UAT Folder');
88
- (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, './env-config.json'), getSetupFileAsString('env-config-sample.json'), null, 2);
91
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating settings.json file inside UAT Folder');
92
+ if (!(0, _fs.existsSync)(_path.default.resolve(uatFolder, 'conf', 'default'))) {
93
+ (0, _fs.mkdirSync)(_path.default.resolve(uatFolder, 'conf', 'default'), {
94
+ recursive: true
95
+ });
96
+ }
97
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', './settings.json'), getSetupFileAsString('settings.json'), null, 2);
98
+ if (!(0, _fs.existsSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions'))) {
99
+ (0, _fs.mkdirSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions'), {
100
+ recursive: true
101
+ });
102
+ }
103
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions', 'free.json'), getSetupFileAsString('free-sample.json'), null, 2);
104
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions', 'index.js'), getSetupFileAsString('editions-index.js'), null, 2);
105
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'index.js'), getSetupFileAsString('actors-index.js'), null, 2);
89
106
  } else {
90
107
  _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Something went wrong. Please re-initialize the @zohodesk/testinglibrary');
91
108
  }
@@ -2,7 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
  var _tagProcessor = _interopRequireDefault(require("../../../../../src/core/playwright/tagProcessor"));
5
- var _Configuration = _interopRequireDefault(require("../../../../../src/core/playwright/configuration/Configuration.js"));
6
5
  var _logger = require("../../../../utils/logger");
7
6
  jest.mock('../../../../utils/logger');
8
7
  describe('TagProcessor', () => {
@@ -12,83 +11,83 @@ describe('TagProcessor', () => {
12
11
  });
13
12
  test('should return tagArgs if no edition is provided', () => {
14
13
  const tagProcessor = new _tagProcessor.default(editionOrder);
15
- const userArgs = new _Configuration.default({
14
+ const userArgs = {
16
15
  tags: 'tag1',
17
16
  edition: null
18
- });
17
+ };
19
18
  const result = tagProcessor.processTags(userArgs);
20
19
  expect(result).toBe('tag1');
21
20
  });
22
21
  test('should handle a single edition with <= operator', () => {
23
22
  const tagProcessor = new _tagProcessor.default(editionOrder);
24
- const userArgs = new _Configuration.default({
23
+ const userArgs = {
25
24
  tags: 'tag1',
26
25
  edition: '<=edition2'
27
- });
26
+ };
28
27
  const result = tagProcessor.processTags(userArgs);
29
28
  expect(result).toBe('tag1 and not (@edition_edition3 or @edition_edition4)');
30
29
  });
31
30
  test('should handle a single edition with >= operator', () => {
32
31
  const tagProcessor = new _tagProcessor.default(editionOrder);
33
- const userArgs = new _Configuration.default({
32
+ const userArgs = {
34
33
  tags: 'tag1',
35
34
  edition: '>=edition2'
36
- });
35
+ };
37
36
  const result = tagProcessor.processTags(userArgs);
38
37
  expect(result).toBe('tag1 and not (@edition_edition1)');
39
38
  });
40
39
  test('should handle a single edition with < operator', () => {
41
40
  const tagProcessor = new _tagProcessor.default(editionOrder);
42
- const userArgs = new _Configuration.default({
41
+ const userArgs = {
43
42
  tags: 'tag1',
44
43
  edition: '<edition3'
45
- });
44
+ };
46
45
  const result = tagProcessor.processTags(userArgs);
47
46
  expect(result).toBe('tag1 and not (@edition_edition3 or @edition_edition4)');
48
47
  });
49
48
  test('should handle a single edition with > operator', () => {
50
49
  const tagProcessor = new _tagProcessor.default(editionOrder);
51
- const userArgs = new _Configuration.default({
50
+ const userArgs = {
52
51
  tags: 'tag1',
53
52
  edition: '>edition1'
54
- });
53
+ };
55
54
  const result = tagProcessor.processTags(userArgs);
56
55
  expect(result).toBe('tag1 and not (@edition_edition1)');
57
56
  });
58
57
  test('should handle a single edition with no operator', () => {
59
58
  const tagProcessor = new _tagProcessor.default(editionOrder);
60
- const userArgs = new _Configuration.default({
59
+ const userArgs = {
61
60
  tags: 'tag1',
62
61
  edition: 'edition2'
63
- });
62
+ };
64
63
  const result = tagProcessor.processTags(userArgs);
65
64
  expect(result).toBe('tag1 and not (@edition_edition1 or @edition_edition3 or @edition_edition4)');
66
65
  });
67
66
  test('should log a message if edition is not found', () => {
68
67
  const tagProcessor = new _tagProcessor.default(editionOrder);
69
- const userArgs = new _Configuration.default({
68
+ const userArgs = {
70
69
  tags: 'tag1',
71
70
  edition: 'nonexistentEdition'
72
- });
71
+ };
73
72
  const result = tagProcessor.processTags(userArgs);
74
73
  expect(result).toBe('tag1');
75
74
  expect(_logger.Logger.log).toHaveBeenCalledWith(_logger.Logger.INFO_TYPE, expect.stringContaining('No matching editions for nonexistentEdition found.'));
76
75
  });
77
76
  test('should handle multiple editions', () => {
78
77
  const tagProcessor = new _tagProcessor.default(editionOrder);
79
- const userArgs = new _Configuration.default({
78
+ const userArgs = {
80
79
  tags: 'tag1',
81
80
  edition: 'edition1,edition3'
82
- });
81
+ };
83
82
  const result = tagProcessor.processTags(userArgs);
84
83
  expect(result).toBe('tag1 and not (@edition_edition2 or @edition_edition4)');
85
84
  });
86
85
  test('should build tags correctly when tags are empty', () => {
87
86
  const tagProcessor = new _tagProcessor.default(editionOrder);
88
- const userArgs = new _Configuration.default({
87
+ const userArgs = {
89
88
  tags: '',
90
89
  edition: 'edition1'
91
- });
90
+ };
92
91
  const result = tagProcessor.processTags(userArgs);
93
92
  expect(result).toBe('not (@edition_edition2 or @edition_edition3 or @edition_edition4)');
94
93
  });
@@ -24,7 +24,7 @@ describe('getUATFileName', () => {
24
24
  });
25
25
  test('return the default config files for pipeline matched files not exists', () => {
26
26
  const mode = 'ci';
27
- const defaultPath = `${mockCwd}/uat.config.js`;
27
+ const defaultPath = `${mockCwd}/uat/conf/default/uat.config.js`;
28
28
  _fs.existsSync.mockReturnValue(false);
29
29
  _path.default.resolve.mockImplementation((...args) => args.join('/'));
30
30
  const result = (0, _configFileNameProvider.getUATFileName)(mode);