@zohodesk/testinglibrary 0.4.5-experimental → 0.4.7-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 (128) hide show
  1. package/.gitlab-ci.yml +7 -7
  2. package/README.md +25 -4
  3. package/build/core/playwright/fixtures.js +24 -0
  4. package/build/core/playwright/helpers/auth/getUsers.js +25 -12
  5. package/build/core/playwright/index.js +10 -23
  6. package/build/core/playwright/setup/config-creator.js +3 -3
  7. package/build/core/playwright/setup/config-utils.js +8 -25
  8. package/build/core/playwright/tagProcessor.js +79 -0
  9. package/build/core/playwright/test-runner.js +4 -3
  10. package/build/core/playwright/validateFeature.js +3 -33
  11. package/build/decorators.d.ts +1 -1
  12. package/build/decorators.js +1 -1
  13. package/build/setup-folder-structure/samples/actors-index.js +3 -0
  14. package/build/setup-folder-structure/samples/auth-setup-sample.js +14 -66
  15. package/build/setup-folder-structure/samples/editions-index.js +3 -0
  16. package/build/setup-folder-structure/samples/free-sample.json +25 -0
  17. package/build/setup-folder-structure/samples/settings.json +7 -0
  18. package/build/setup-folder-structure/setupProject.js +18 -5
  19. package/build/test/core/playwright/__tests__/tagProcessor.test.js +94 -0
  20. package/build/test/core/playwright/__tests__/validateFeature.test.js +10 -5
  21. package/npm-shrinkwrap.json +5795 -2145
  22. package/package.json +7 -7
  23. package/build/bdd-framework/cli/commands/env.js +0 -42
  24. package/build/bdd-framework/cli/commands/export.js +0 -62
  25. package/build/bdd-framework/cli/commands/test.js +0 -64
  26. package/build/bdd-framework/cli/index.js +0 -11
  27. package/build/bdd-framework/cli/options.js +0 -19
  28. package/build/bdd-framework/cli/worker.js +0 -13
  29. package/build/bdd-framework/config/configDir.js +0 -35
  30. package/build/bdd-framework/config/enrichReporterData.js +0 -23
  31. package/build/bdd-framework/config/env.js +0 -50
  32. package/build/bdd-framework/config/index.js +0 -94
  33. package/build/bdd-framework/config/lang.js +0 -14
  34. package/build/bdd-framework/cucumber/buildStepDefinition.js +0 -43
  35. package/build/bdd-framework/cucumber/createTestStep.js +0 -43
  36. package/build/bdd-framework/cucumber/formatter/EventDataCollector.js +0 -126
  37. package/build/bdd-framework/cucumber/formatter/GherkinDocumentParser.js +0 -72
  38. package/build/bdd-framework/cucumber/formatter/PickleParser.js +0 -25
  39. package/build/bdd-framework/cucumber/formatter/durationHelpers.js +0 -13
  40. package/build/bdd-framework/cucumber/formatter/getColorFns.js +0 -57
  41. package/build/bdd-framework/cucumber/formatter/index.js +0 -16
  42. package/build/bdd-framework/cucumber/formatter/locationHelpers.js +0 -16
  43. package/build/bdd-framework/cucumber/loadConfig.js +0 -17
  44. package/build/bdd-framework/cucumber/loadFeatures.js +0 -70
  45. package/build/bdd-framework/cucumber/loadSnippetBuilder.js +0 -20
  46. package/build/bdd-framework/cucumber/loadSteps.js +0 -47
  47. package/build/bdd-framework/cucumber/resolveFeaturePaths.js +0 -62
  48. package/build/bdd-framework/cucumber/stepArguments.js +0 -21
  49. package/build/bdd-framework/cucumber/types.js +0 -5
  50. package/build/bdd-framework/cucumber/valueChecker.js +0 -23
  51. package/build/bdd-framework/decorators.js +0 -18
  52. package/build/bdd-framework/gen/fixtures.js +0 -48
  53. package/build/bdd-framework/gen/formatter.js +0 -167
  54. package/build/bdd-framework/gen/i18n.js +0 -39
  55. package/build/bdd-framework/gen/index.js +0 -197
  56. package/build/bdd-framework/gen/specialTags.js +0 -70
  57. package/build/bdd-framework/gen/testFile.js +0 -470
  58. package/build/bdd-framework/gen/testMeta.js +0 -60
  59. package/build/bdd-framework/gen/testNode.js +0 -35
  60. package/build/bdd-framework/gen/testPoms.js +0 -133
  61. package/build/bdd-framework/hooks/scenario.js +0 -130
  62. package/build/bdd-framework/hooks/worker.js +0 -89
  63. package/build/bdd-framework/index.js +0 -52
  64. package/build/bdd-framework/playwright/fixtureParameterNames.js +0 -93
  65. package/build/bdd-framework/playwright/getLocationInFile.js +0 -79
  66. package/build/bdd-framework/playwright/loadConfig.js +0 -42
  67. package/build/bdd-framework/playwright/loadUtils.js +0 -33
  68. package/build/bdd-framework/playwright/testTypeImpl.js +0 -79
  69. package/build/bdd-framework/playwright/transform.js +0 -88
  70. package/build/bdd-framework/playwright/types.js +0 -12
  71. package/build/bdd-framework/playwright/utils.js +0 -56
  72. package/build/bdd-framework/reporter/cucumber/base.js +0 -52
  73. package/build/bdd-framework/reporter/cucumber/custom.js +0 -73
  74. package/build/bdd-framework/reporter/cucumber/helper.js +0 -12
  75. package/build/bdd-framework/reporter/cucumber/html.js +0 -40
  76. package/build/bdd-framework/reporter/cucumber/index.js +0 -74
  77. package/build/bdd-framework/reporter/cucumber/json.js +0 -312
  78. package/build/bdd-framework/reporter/cucumber/junit.js +0 -205
  79. package/build/bdd-framework/reporter/cucumber/message.js +0 -20
  80. package/build/bdd-framework/reporter/cucumber/messagesBuilder/AttachmentMapper.js +0 -82
  81. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Builder.js +0 -197
  82. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocument.js +0 -43
  83. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocumentClone.js +0 -52
  84. package/build/bdd-framework/reporter/cucumber/messagesBuilder/GherkinDocuments.js +0 -105
  85. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Hook.js +0 -70
  86. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Meta.js +0 -45
  87. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Pickles.js +0 -27
  88. package/build/bdd-framework/reporter/cucumber/messagesBuilder/Projects.js +0 -38
  89. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCase.js +0 -128
  90. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRun.js +0 -154
  91. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestCaseRunHooks.js +0 -123
  92. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepAttachments.js +0 -67
  93. package/build/bdd-framework/reporter/cucumber/messagesBuilder/TestStepRun.js +0 -114
  94. package/build/bdd-framework/reporter/cucumber/messagesBuilder/index.js +0 -30
  95. package/build/bdd-framework/reporter/cucumber/messagesBuilder/pwStepUtils.js +0 -70
  96. package/build/bdd-framework/reporter/cucumber/messagesBuilder/timing.js +0 -35
  97. package/build/bdd-framework/reporter/cucumber/messagesBuilder/types.js +0 -5
  98. package/build/bdd-framework/run/StepInvoker.js +0 -69
  99. package/build/bdd-framework/run/bddData/index.js +0 -59
  100. package/build/bdd-framework/run/bddData/types.js +0 -5
  101. package/build/bdd-framework/run/bddFixtures.js +0 -192
  102. package/build/bdd-framework/run/bddWorld.js +0 -79
  103. package/build/bdd-framework/run/bddWorldInternal.js +0 -11
  104. package/build/bdd-framework/snippets/index.js +0 -132
  105. package/build/bdd-framework/snippets/snippetSyntax.js +0 -43
  106. package/build/bdd-framework/snippets/snippetSyntaxDecorators.js +0 -26
  107. package/build/bdd-framework/snippets/snippetSyntaxTs.js +0 -18
  108. package/build/bdd-framework/stepDefinitions/createBdd.js +0 -66
  109. package/build/bdd-framework/stepDefinitions/decorators/class.js +0 -68
  110. package/build/bdd-framework/stepDefinitions/decorators/steps.js +0 -99
  111. package/build/bdd-framework/stepDefinitions/defineStep.js +0 -62
  112. package/build/bdd-framework/stepDefinitions/stepConfig.js +0 -24
  113. package/build/bdd-framework/steps/createBdd.js +0 -78
  114. package/build/bdd-framework/steps/decorators/class.js +0 -68
  115. package/build/bdd-framework/steps/decorators/steps.js +0 -98
  116. package/build/bdd-framework/steps/defineStep.js +0 -62
  117. package/build/bdd-framework/steps/stepConfig.js +0 -24
  118. package/build/bdd-framework/utils/AutofillMap.js +0 -20
  119. package/build/bdd-framework/utils/exit.js +0 -62
  120. package/build/bdd-framework/utils/index.js +0 -93
  121. package/build/bdd-framework/utils/jsStringWrap.js +0 -44
  122. package/build/bdd-framework/utils/logger.js +0 -30
  123. package/build/bdd-framework/utils/stripAnsiEscapes.js +0 -20
  124. package/build/core/playwright/tag-processor.js +0 -68
  125. package/build/setup-folder-structure/samples/authUsers-sample.json +0 -9
  126. package/build/setup-folder-structure/samples/env-config-sample.json +0 -21
  127. package/build/test/core/playwright/helpers/__tests__/getUsers_ListOfActors.test.js +0 -80
  128. package/nobdd/src/App.js +0 -7
@@ -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,7 +72,6 @@ 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
76
  } catch (err) {
77
77
  _logger.Logger.error(err);
@@ -84,8 +84,21 @@ function createAuthenticationFile() {
84
84
  function createConfigJson() {
85
85
  const uatFolder = _path.default.resolve(process.cwd(), 'uat');
86
86
  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);
87
+ _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Creating settings.json file inside UAT Folder');
88
+ if (!(0, _fs.existsSync)(_path.default.resolve(uatFolder, 'conf', 'default'))) {
89
+ (0, _fs.mkdirSync)(_path.default.resolve(uatFolder, 'conf', 'default'), {
90
+ recursive: true
91
+ });
92
+ }
93
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', './settings.json'), getSetupFileAsString('settings.json'), null, 2);
94
+ if (!(0, _fs.existsSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions'))) {
95
+ (0, _fs.mkdirSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions'), {
96
+ recursive: true
97
+ });
98
+ }
99
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions', 'free.json'), getSetupFileAsString('free-sample.json'), null, 2);
100
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'editions', 'index.js'), getSetupFileAsString('editions-index.js'), null, 2);
101
+ (0, _fs.writeFileSync)(_path.default.resolve(uatFolder, 'conf', 'default', 'actors', 'index.js'), getSetupFileAsString('actors-index.js'), null, 2);
89
102
  } else {
90
103
  _logger.Logger.log(_logger.Logger.INFO_TYPE, 'Something went wrong. Please re-initialize the @zohodesk/testinglibrary');
91
104
  }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _tagProcessor = _interopRequireDefault(require("../../../../../src/core/playwright/tagProcessor"));
5
+ var _logger = require("../../../../utils/logger");
6
+ jest.mock('../../../../utils/logger');
7
+ describe('TagProcessor', () => {
8
+ const editionOrder = ['edition1', 'edition2', 'edition3', 'edition4'];
9
+ beforeEach(() => {
10
+ jest.clearAllMocks();
11
+ });
12
+ test('should return tagArgs if no edition is provided', () => {
13
+ const tagProcessor = new _tagProcessor.default(editionOrder);
14
+ const userArgs = {
15
+ tags: 'tag1',
16
+ edition: null
17
+ };
18
+ const result = tagProcessor.processTags(userArgs);
19
+ expect(result).toBe('tag1');
20
+ });
21
+ test('should handle a single edition with <= operator', () => {
22
+ const tagProcessor = new _tagProcessor.default(editionOrder);
23
+ const userArgs = {
24
+ tags: 'tag1',
25
+ edition: '<=edition2'
26
+ };
27
+ const result = tagProcessor.processTags(userArgs);
28
+ expect(result).toBe('tag1 and not (@edition_edition3 or @edition_edition4)');
29
+ });
30
+ test('should handle a single edition with >= operator', () => {
31
+ const tagProcessor = new _tagProcessor.default(editionOrder);
32
+ const userArgs = {
33
+ tags: 'tag1',
34
+ edition: '>=edition2'
35
+ };
36
+ const result = tagProcessor.processTags(userArgs);
37
+ expect(result).toBe('tag1 and not (@edition_edition1)');
38
+ });
39
+ test('should handle a single edition with < operator', () => {
40
+ const tagProcessor = new _tagProcessor.default(editionOrder);
41
+ const userArgs = {
42
+ tags: 'tag1',
43
+ edition: '<edition3'
44
+ };
45
+ const result = tagProcessor.processTags(userArgs);
46
+ expect(result).toBe('tag1 and not (@edition_edition3 or @edition_edition4)');
47
+ });
48
+ test('should handle a single edition with > operator', () => {
49
+ const tagProcessor = new _tagProcessor.default(editionOrder);
50
+ const userArgs = {
51
+ tags: 'tag1',
52
+ edition: '>edition1'
53
+ };
54
+ const result = tagProcessor.processTags(userArgs);
55
+ expect(result).toBe('tag1 and not (@edition_edition1)');
56
+ });
57
+ test('should handle a single edition with no operator', () => {
58
+ const tagProcessor = new _tagProcessor.default(editionOrder);
59
+ const userArgs = {
60
+ tags: 'tag1',
61
+ edition: 'edition2'
62
+ };
63
+ const result = tagProcessor.processTags(userArgs);
64
+ expect(result).toBe('tag1 and not (@edition_edition1 or @edition_edition3 or @edition_edition4)');
65
+ });
66
+ test('should log a message if edition is not found', () => {
67
+ const tagProcessor = new _tagProcessor.default(editionOrder);
68
+ const userArgs = {
69
+ tags: 'tag1',
70
+ edition: 'nonexistentEdition'
71
+ };
72
+ const result = tagProcessor.processTags(userArgs);
73
+ expect(result).toBe('tag1');
74
+ expect(_logger.Logger.log).toHaveBeenCalledWith(_logger.Logger.INFO_TYPE, expect.stringContaining('No matching editions for nonexistentEdition found.'));
75
+ });
76
+ test('should handle multiple editions', () => {
77
+ const tagProcessor = new _tagProcessor.default(editionOrder);
78
+ const userArgs = {
79
+ tags: 'tag1',
80
+ edition: 'edition1,edition3'
81
+ };
82
+ const result = tagProcessor.processTags(userArgs);
83
+ expect(result).toBe('tag1 and not (@edition_edition2 or @edition_edition4)');
84
+ });
85
+ test('should build tags correctly when tags are empty', () => {
86
+ const tagProcessor = new _tagProcessor.default(editionOrder);
87
+ const userArgs = {
88
+ tags: '',
89
+ edition: 'edition1'
90
+ };
91
+ const result = tagProcessor.processTags(userArgs);
92
+ expect(result).toBe('not (@edition_edition2 or @edition_edition3 or @edition_edition4)');
93
+ });
94
+ });
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  var _validateFeature = _interopRequireDefault(require("../../../../core/playwright/validateFeature"));
5
5
  var _parseUserArgs = _interopRequireDefault(require("../../../../core/playwright/helpers/parseUserArgs"));
6
6
  var _readConfigFile = require("../../../../core/playwright/readConfigFile");
7
- var _tagProcessor = require("../../../../core/playwright/tag-processor");
7
+ var _tagProcessor = _interopRequireDefault(require("../../../../core/playwright/tagProcessor"));
8
8
  var _testRunner = require("../../../../core/playwright/test-runner");
9
9
  var _logger = require("../../../../utils/logger");
10
10
  jest.mock('../../../../core/playwright/helpers/parseUserArgs', () => ({
@@ -12,7 +12,7 @@ jest.mock('../../../../core/playwright/helpers/parseUserArgs', () => ({
12
12
  default: jest.fn()
13
13
  }));
14
14
  jest.mock('../../../../core/playwright/readConfigFile');
15
- jest.mock('../../../../core/playwright/tag-processor');
15
+ jest.mock('../../../../core/playwright/tagProcessor');
16
16
  jest.mock('../../../../core/playwright/test-runner');
17
17
  jest.mock('../../../../utils/logger', () => ({
18
18
  __esModule: true,
@@ -23,8 +23,13 @@ jest.mock('../../../../utils/logger', () => ({
23
23
  }
24
24
  }));
25
25
  describe('validateFeatureFiles', () => {
26
+ let tagProcessorInstance;
26
27
  beforeEach(() => {
27
28
  jest.clearAllMocks();
29
+ tagProcessorInstance = {
30
+ processTags: jest.fn()
31
+ };
32
+ _tagProcessor.default.mockImplementation(() => tagProcessorInstance);
28
33
  });
29
34
  test('runPreprocessing with correct arguments and log success', async () => {
30
35
  const mockUserArgs = {
@@ -37,19 +42,19 @@ describe('validateFeatureFiles', () => {
37
42
  _readConfigFile.generateConfigFromFile.mockReturnValue(mockConfig);
38
43
  _readConfigFile.isUserConfigFileAvailable.mockReturnValue(true);
39
44
  const mockTagArgs = ['@beta_admin'];
40
- _tagProcessor.tagProcessor.mockReturnValue(mockTagArgs);
45
+ tagProcessorInstance.processTags.mockReturnValue(mockTagArgs);
41
46
  _testRunner.runPreprocessing.mockResolvedValueOnce();
42
47
  await (0, _validateFeature.default)();
43
48
  expect(_parseUserArgs.default).toHaveBeenCalled();
44
49
  expect(_readConfigFile.generateConfigFromFile).toHaveBeenCalled();
45
50
  expect(_readConfigFile.isUserConfigFileAvailable).toHaveBeenCalled();
46
- expect(_tagProcessor.tagProcessor).toHaveBeenCalledWith(mockUserArgs, ["beta", "enterprice"]);
51
+ expect(tagProcessorInstance.processTags).toHaveBeenCalledWith(mockUserArgs);
47
52
  expect(_testRunner.runPreprocessing).toHaveBeenCalledWith(mockTagArgs, expect.stringContaining('config-creator.js'));
48
53
  expect(_logger.Logger.log).toHaveBeenCalledWith(_logger.Logger.SUCCESS_TYPE, 'Feature files validated successfully.');
49
54
  });
50
55
  test('runPreprocessing with playwright conf', async () => {
51
56
  const mockTagArgs = ['@beta_admin'];
52
- _tagProcessor.tagProcessor.mockReturnValue(mockTagArgs);
57
+ tagProcessorInstance.processTags.mockReturnValue(mockTagArgs);
53
58
  _readConfigFile.isUserConfigFileAvailable.mockReturnValue(false);
54
59
  _testRunner.runPreprocessing.mockResolvedValueOnce();
55
60
  await (0, _validateFeature.default)();