@camunda/e2e-test-suite 0.0.714 → 0.0.715

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 (201) hide show
  1. package/.github/c8_versions.json +0 -3
  2. package/README.md +0 -6
  3. package/dist/utils/clusterVersions.d.ts +0 -1
  4. package/dist/utils/clusterVersions.js +0 -1
  5. package/package.json +1 -1
  6. package/dist/fixtures/8.6.d.ts +0 -63
  7. package/dist/fixtures/8.6.js +0 -162
  8. package/dist/fixtures/SM-8.6.d.ts +0 -63
  9. package/dist/fixtures/SM-8.6.js +0 -149
  10. package/dist/fixtures/c8Run-8.6.d.ts +0 -20
  11. package/dist/fixtures/c8Run-8.6.js +0 -56
  12. package/dist/pages/8.6/AppsPage.d.ts +0 -33
  13. package/dist/pages/8.6/AppsPage.js +0 -337
  14. package/dist/pages/8.6/ClientCredentialsDetailsPage.d.ts +0 -12
  15. package/dist/pages/8.6/ClientCredentialsDetailsPage.js +0 -36
  16. package/dist/pages/8.6/ClusterDetailsPage.d.ts +0 -75
  17. package/dist/pages/8.6/ClusterDetailsPage.js +0 -443
  18. package/dist/pages/8.6/ClusterPage.d.ts +0 -59
  19. package/dist/pages/8.6/ClusterPage.js +0 -320
  20. package/dist/pages/8.6/ClusterSecretsPage.d.ts +0 -28
  21. package/dist/pages/8.6/ClusterSecretsPage.js +0 -134
  22. package/dist/pages/8.6/ConnectorMarketplacePage.d.ts +0 -19
  23. package/dist/pages/8.6/ConnectorMarketplacePage.js +0 -60
  24. package/dist/pages/8.6/ConnectorSettingsPage.d.ts +0 -38
  25. package/dist/pages/8.6/ConnectorSettingsPage.js +0 -133
  26. package/dist/pages/8.6/ConnectorTemplatePage.d.ts +0 -11
  27. package/dist/pages/8.6/ConnectorTemplatePage.js +0 -34
  28. package/dist/pages/8.6/ConsoleOrganizationPage.d.ts +0 -87
  29. package/dist/pages/8.6/ConsoleOrganizationPage.js +0 -495
  30. package/dist/pages/8.6/FormJsPage.d.ts +0 -30
  31. package/dist/pages/8.6/FormJsPage.js +0 -112
  32. package/dist/pages/8.6/HomePage.d.ts +0 -27
  33. package/dist/pages/8.6/HomePage.js +0 -101
  34. package/dist/pages/8.6/LoginPage.d.ts +0 -30
  35. package/dist/pages/8.6/LoginPage.js +0 -85
  36. package/dist/pages/8.6/ModelerCreatePage.d.ts +0 -211
  37. package/dist/pages/8.6/ModelerCreatePage.js +0 -1125
  38. package/dist/pages/8.6/ModelerHomePage.d.ts +0 -48
  39. package/dist/pages/8.6/ModelerHomePage.js +0 -213
  40. package/dist/pages/8.6/ModelerUserInvitePage.d.ts +0 -28
  41. package/dist/pages/8.6/ModelerUserInvitePage.js +0 -106
  42. package/dist/pages/8.6/OperateHomePage.d.ts +0 -21
  43. package/dist/pages/8.6/OperateHomePage.js +0 -57
  44. package/dist/pages/8.6/OperateProcessInstancePage.d.ts +0 -17
  45. package/dist/pages/8.6/OperateProcessInstancePage.js +0 -58
  46. package/dist/pages/8.6/OperateProcessesPage.d.ts +0 -21
  47. package/dist/pages/8.6/OperateProcessesPage.js +0 -77
  48. package/dist/pages/8.6/OptimizeCollectionsPage.d.ts +0 -15
  49. package/dist/pages/8.6/OptimizeCollectionsPage.js +0 -44
  50. package/dist/pages/8.6/OptimizeDashboardPage.d.ts +0 -11
  51. package/dist/pages/8.6/OptimizeDashboardPage.js +0 -65
  52. package/dist/pages/8.6/OptimizeHomePage.d.ts +0 -12
  53. package/dist/pages/8.6/OptimizeHomePage.js +0 -32
  54. package/dist/pages/8.6/OptimizeReportPage.d.ts +0 -48
  55. package/dist/pages/8.6/OptimizeReportPage.js +0 -163
  56. package/dist/pages/8.6/PlayPage.d.ts +0 -14
  57. package/dist/pages/8.6/PlayPage.js +0 -66
  58. package/dist/pages/8.6/SettingsPage.d.ts +0 -10
  59. package/dist/pages/8.6/SettingsPage.js +0 -43
  60. package/dist/pages/8.6/SignUpPage.d.ts +0 -43
  61. package/dist/pages/8.6/SignUpPage.js +0 -136
  62. package/dist/pages/8.6/TaskDetailsPage.d.ts +0 -66
  63. package/dist/pages/8.6/TaskDetailsPage.js +0 -214
  64. package/dist/pages/8.6/TaskPanelPage.d.ts +0 -18
  65. package/dist/pages/8.6/TaskPanelPage.js +0 -54
  66. package/dist/pages/8.6/TaskProcessesPage.d.ts +0 -11
  67. package/dist/pages/8.6/TaskProcessesPage.js +0 -35
  68. package/dist/pages/8.6/UtilitiesPage.d.ts +0 -38
  69. package/dist/pages/8.6/UtilitiesPage.js +0 -328
  70. package/dist/pages/SM-8.6/ConnectorMarketplacePage.d.ts +0 -16
  71. package/dist/pages/SM-8.6/ConnectorMarketplacePage.js +0 -48
  72. package/dist/pages/SM-8.6/ConnectorSettingsPage.d.ts +0 -28
  73. package/dist/pages/SM-8.6/ConnectorSettingsPage.js +0 -82
  74. package/dist/pages/SM-8.6/ConnectorTemplatePage.d.ts +0 -11
  75. package/dist/pages/SM-8.6/ConnectorTemplatePage.js +0 -34
  76. package/dist/pages/SM-8.6/ConsoleHomePage.d.ts +0 -9
  77. package/dist/pages/SM-8.6/ConsoleHomePage.js +0 -22
  78. package/dist/pages/SM-8.6/ConsoleOrganizationPage.d.ts +0 -22
  79. package/dist/pages/SM-8.6/ConsoleOrganizationPage.js +0 -68
  80. package/dist/pages/SM-8.6/FormJsPage.d.ts +0 -13
  81. package/dist/pages/SM-8.6/FormJsPage.js +0 -30
  82. package/dist/pages/SM-8.6/HomePage.d.ts +0 -20
  83. package/dist/pages/SM-8.6/HomePage.js +0 -49
  84. package/dist/pages/SM-8.6/IdentityPage.d.ts +0 -67
  85. package/dist/pages/SM-8.6/IdentityPage.js +0 -266
  86. package/dist/pages/SM-8.6/IdentityTenantPage.d.ts +0 -50
  87. package/dist/pages/SM-8.6/IdentityTenantPage.js +0 -196
  88. package/dist/pages/SM-8.6/IdentityUsersPage.d.ts +0 -90
  89. package/dist/pages/SM-8.6/IdentityUsersPage.js +0 -505
  90. package/dist/pages/SM-8.6/KeycloakAdminPage.d.ts +0 -15
  91. package/dist/pages/SM-8.6/KeycloakAdminPage.js +0 -56
  92. package/dist/pages/SM-8.6/KeycloakLoginPage.d.ts +0 -11
  93. package/dist/pages/SM-8.6/KeycloakLoginPage.js +0 -25
  94. package/dist/pages/SM-8.6/KeycloakUtils.d.ts +0 -15
  95. package/dist/pages/SM-8.6/KeycloakUtils.js +0 -58
  96. package/dist/pages/SM-8.6/LoginPage.d.ts +0 -22
  97. package/dist/pages/SM-8.6/LoginPage.js +0 -123
  98. package/dist/pages/SM-8.6/ModelerCreatePage.d.ts +0 -167
  99. package/dist/pages/SM-8.6/ModelerCreatePage.js +0 -852
  100. package/dist/pages/SM-8.6/ModelerHomePage.d.ts +0 -41
  101. package/dist/pages/SM-8.6/ModelerHomePage.js +0 -150
  102. package/dist/pages/SM-8.6/NavigationPage.d.ts +0 -42
  103. package/dist/pages/SM-8.6/NavigationPage.js +0 -119
  104. package/dist/pages/SM-8.6/OperateHomePage.d.ts +0 -23
  105. package/dist/pages/SM-8.6/OperateHomePage.js +0 -65
  106. package/dist/pages/SM-8.6/OperateProcessInstancePage.d.ts +0 -22
  107. package/dist/pages/SM-8.6/OperateProcessInstancePage.js +0 -139
  108. package/dist/pages/SM-8.6/OperateProcessesPage.d.ts +0 -33
  109. package/dist/pages/SM-8.6/OperateProcessesPage.js +0 -166
  110. package/dist/pages/SM-8.6/OptimizeCollectionsPage.d.ts +0 -15
  111. package/dist/pages/SM-8.6/OptimizeCollectionsPage.js +0 -44
  112. package/dist/pages/SM-8.6/OptimizeDashboardPage.d.ts +0 -14
  113. package/dist/pages/SM-8.6/OptimizeDashboardPage.js +0 -56
  114. package/dist/pages/SM-8.6/OptimizeHomePage.d.ts +0 -19
  115. package/dist/pages/SM-8.6/OptimizeHomePage.js +0 -62
  116. package/dist/pages/SM-8.6/OptimizeReportPage.d.ts +0 -50
  117. package/dist/pages/SM-8.6/OptimizeReportPage.js +0 -162
  118. package/dist/pages/SM-8.6/PlayPage.d.ts +0 -19
  119. package/dist/pages/SM-8.6/PlayPage.js +0 -103
  120. package/dist/pages/SM-8.6/SettingsPage.d.ts +0 -10
  121. package/dist/pages/SM-8.6/SettingsPage.js +0 -20
  122. package/dist/pages/SM-8.6/TaskDetailsPage.d.ts +0 -64
  123. package/dist/pages/SM-8.6/TaskDetailsPage.js +0 -240
  124. package/dist/pages/SM-8.6/TaskPanelPage.d.ts +0 -22
  125. package/dist/pages/SM-8.6/TaskPanelPage.js +0 -68
  126. package/dist/pages/SM-8.6/TaskProcessesPage.d.ts +0 -11
  127. package/dist/pages/SM-8.6/TaskProcessesPage.js +0 -31
  128. package/dist/pages/SM-8.6/UtlitiesPage.d.ts +0 -21
  129. package/dist/pages/SM-8.6/UtlitiesPage.js +0 -207
  130. package/dist/pages/SM-8.6/optimizeReportUtils.d.ts +0 -6
  131. package/dist/pages/SM-8.6/optimizeReportUtils.js +0 -42
  132. package/dist/pages/c8Run-8.6/OperateHomePage.d.ts +0 -20
  133. package/dist/pages/c8Run-8.6/OperateHomePage.js +0 -52
  134. package/dist/pages/c8Run-8.6/OperateLoginPage.d.ts +0 -14
  135. package/dist/pages/c8Run-8.6/OperateLoginPage.js +0 -37
  136. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.d.ts +0 -17
  137. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.js +0 -76
  138. package/dist/pages/c8Run-8.6/OperateProcessesPage.d.ts +0 -20
  139. package/dist/pages/c8Run-8.6/OperateProcessesPage.js +0 -84
  140. package/dist/pages/c8Run-8.6/TaskDetailsPage.d.ts +0 -65
  141. package/dist/pages/c8Run-8.6/TaskDetailsPage.js +0 -219
  142. package/dist/pages/c8Run-8.6/TaskListLoginPage.d.ts +0 -14
  143. package/dist/pages/c8Run-8.6/TaskListLoginPage.js +0 -37
  144. package/dist/pages/c8Run-8.6/TaskPanelPage.d.ts +0 -23
  145. package/dist/pages/c8Run-8.6/TaskPanelPage.js +0 -76
  146. package/dist/pages/c8Run-8.6/UtilitiesPage.d.ts +0 -6
  147. package/dist/pages/c8Run-8.6/UtilitiesPage.js +0 -45
  148. package/dist/tests/8.6/connectors-user-flows.spec.d.ts +0 -1
  149. package/dist/tests/8.6/connectors-user-flows.spec.js +0 -435
  150. package/dist/tests/8.6/console-user-flows.spec.d.ts +0 -1
  151. package/dist/tests/8.6/console-user-flows.spec.js +0 -193
  152. package/dist/tests/8.6/hto-user-flows.spec.d.ts +0 -1
  153. package/dist/tests/8.6/hto-user-flows.spec.js +0 -365
  154. package/dist/tests/8.6/login.spec.d.ts +0 -1
  155. package/dist/tests/8.6/login.spec.js +0 -27
  156. package/dist/tests/8.6/navigation.spec.d.ts +0 -1
  157. package/dist/tests/8.6/navigation.spec.js +0 -57
  158. package/dist/tests/8.6/operate-access-flow.spec.d.ts +0 -1
  159. package/dist/tests/8.6/operate-access-flow.spec.js +0 -57
  160. package/dist/tests/8.6/optimize-user-flows.spec.d.ts +0 -1
  161. package/dist/tests/8.6/optimize-user-flows.spec.js +0 -231
  162. package/dist/tests/8.6/play.spec.d.ts +0 -1
  163. package/dist/tests/8.6/play.spec.js +0 -94
  164. package/dist/tests/8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  165. package/dist/tests/8.6/rba-enabled-user-flows.spec.js +0 -288
  166. package/dist/tests/8.6/smoke-tests.spec.d.ts +0 -1
  167. package/dist/tests/8.6/smoke-tests.spec.js +0 -188
  168. package/dist/tests/8.6/test-setup.spec.d.ts +0 -1
  169. package/dist/tests/8.6/test-setup.spec.js +0 -68
  170. package/dist/tests/8.6/web-modeler-user-flows.spec.d.ts +0 -1
  171. package/dist/tests/8.6/web-modeler-user-flows.spec.js +0 -692
  172. package/dist/tests/SM-8.6/connectors-user-flows.spec.d.ts +0 -1
  173. package/dist/tests/SM-8.6/connectors-user-flows.spec.js +0 -247
  174. package/dist/tests/SM-8.6/console-user-flows.spec.d.ts +0 -1
  175. package/dist/tests/SM-8.6/console-user-flows.spec.js +0 -55
  176. package/dist/tests/SM-8.6/hto-user-flows.spec.d.ts +0 -1
  177. package/dist/tests/SM-8.6/hto-user-flows.spec.js +0 -393
  178. package/dist/tests/SM-8.6/license-key-user-flows.spec.d.ts +0 -1
  179. package/dist/tests/SM-8.6/license-key-user-flows.spec.js +0 -462
  180. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.d.ts +0 -1
  181. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.js +0 -500
  182. package/dist/tests/SM-8.6/optimize-user-flows.spec.d.ts +0 -1
  183. package/dist/tests/SM-8.6/optimize-user-flows.spec.js +0 -186
  184. package/dist/tests/SM-8.6/play.spec.d.ts +0 -1
  185. package/dist/tests/SM-8.6/play.spec.js +0 -87
  186. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  187. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.js +0 -242
  188. package/dist/tests/SM-8.6/smoke-tests.spec.d.ts +0 -1
  189. package/dist/tests/SM-8.6/smoke-tests.spec.js +0 -158
  190. package/dist/tests/SM-8.6/test-setup.spec.d.ts +0 -1
  191. package/dist/tests/SM-8.6/test-setup.spec.js +0 -134
  192. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.d.ts +0 -1
  193. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.js +0 -126
  194. package/dist/tests/c8Run-8.6/api-tests.spec.d.ts +0 -1
  195. package/dist/tests/c8Run-8.6/api-tests.spec.js +0 -67
  196. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.d.ts +0 -1
  197. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.js +0 -119
  198. package/dist/tests/c8Run-8.6/hto-user-flows.spec.d.ts +0 -1
  199. package/dist/tests/c8Run-8.6/hto-user-flows.spec.js +0 -199
  200. package/dist/tests/c8Run-8.6/login.spec.d.ts +0 -1
  201. package/dist/tests/c8Run-8.6/login.spec.js +0 -22
@@ -1,1125 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelerCreatePage = void 0;
4
- const test_1 = require("@playwright/test");
5
- const sleep_1 = require("../../utils/sleep");
6
- const randomSleep_1 = require("../../utils/randomSleep");
7
- const ConnectorMarketplacePage_1 = require("../8.6/ConnectorMarketplacePage");
8
- class ModelerCreatePage {
9
- page;
10
- generalPanel;
11
- idInput;
12
- startEventElement;
13
- appendTaskButton;
14
- appendGatewayButton;
15
- changeTypeButton;
16
- userTaskOption;
17
- parallelGatewayOption;
18
- appendEndEventButton;
19
- startInstanceMainButton;
20
- startInstanceSubButton;
21
- viewProcessInstanceLink;
22
- nameInput;
23
- diagramBreadcrumb;
24
- renameDiagramNameButton;
25
- diagramNameInput;
26
- variableInput;
27
- embedFormButton;
28
- embedButton;
29
- newForm;
30
- deployMainButton;
31
- deployMenuItem;
32
- additionalActionsButton;
33
- deploySubButton;
34
- cancelButton;
35
- restConnectorOption;
36
- webhookMessageStartEventConnectorOption;
37
- webhookTab;
38
- webhookIsActiveButton;
39
- copyWebhookUrlToClipboardButton;
40
- createTask;
41
- createEndEvent;
42
- canvas;
43
- endEventCanvas;
44
- connectToOtherElementButton;
45
- firstPlacedElement;
46
- secondPlacedElement;
47
- firstPlacedGateway;
48
- secondPlacedGateway;
49
- appendElementButton;
50
- marketPlaceButton;
51
- publicHolidayConnectorOption;
52
- publicHolidayYearOption;
53
- publicHolidayCountryCodeOption;
54
- implementationSection;
55
- implementationOptions;
56
- assignmentSection;
57
- priorityInput;
58
- firstElement;
59
- secondElement;
60
- thirdElement;
61
- payloadNameInput;
62
- payloadNumberInput;
63
- payloadCheckboxInput;
64
- payloadDateInput;
65
- form;
66
- formPropertySection;
67
- formLinkingTypeDropdown;
68
- formLinkTypeOptions;
69
- addFormJsonConfigurationInput;
70
- intermediateBoundaryEvent;
71
- intermediateWebhookConnectorOption;
72
- correlationKeyProcessInput;
73
- correlationKeyPayloadInput;
74
- closeButton;
75
- rbaEnabledDeployedDialog;
76
- viewProcessLink;
77
- assigneeInput;
78
- candidateGroupsInput;
79
- candidateUsersInput;
80
- serviceTaskOption;
81
- taskDefinitionPanel;
82
- jobTypeInput;
83
- playTab;
84
- continueToPlayButton;
85
- deployAndRunDialog;
86
- deployDiagramDialog;
87
- timerEventOption;
88
- timerEventSettings;
89
- timerType;
90
- timerValue;
91
- eighthPlacedElement;
92
- processIdSecondLocator;
93
- backupDeployButton;
94
- publicationSection;
95
- publicAccessToggle;
96
- publicationTab;
97
- copyPublicLinkButton;
98
- formLinkedSuccessMessage;
99
- diagramNameBreadcrumb;
100
- dialog;
101
- constructor(page) {
102
- this.page = page;
103
- this.generalPanel = page.locator('[data-group-id="group-general"]');
104
- this.idInput = page.getByLabel('ID', { exact: true });
105
- this.startEventElement = page.locator('.djs-hit').first();
106
- this.appendElementButton = page
107
- .locator('[class="djs-create-pad open djs-append-create-pad"]')
108
- .first();
109
- this.appendTaskButton = page.getByTitle('Append task');
110
- this.appendGatewayButton = page.getByTitle('append gateway');
111
- this.changeTypeButton = page.getByLabel('Change element');
112
- this.userTaskOption = page
113
- .getByRole('listitem', { name: 'User task' })
114
- .locator('span')
115
- .first();
116
- this.parallelGatewayOption = page.getByText('parallel gateway');
117
- this.appendEndEventButton = page.getByTitle('Append end event');
118
- this.deployAndRunDialog = page.getByRole('dialog', {
119
- name: 'Deploy & run diagram',
120
- });
121
- this.startInstanceMainButton = page.getByRole('button', {
122
- name: 'Deploy & run',
123
- });
124
- this.additionalActionsButton = page.getByRole('button', {
125
- name: 'Additional actions',
126
- });
127
- this.startInstanceSubButton = this.deployAndRunDialog
128
- .getByRole('button', { name: 'Deploy & run' })
129
- .last();
130
- this.viewProcessInstanceLink = page.getByRole('button', {
131
- name: 'View process instance',
132
- });
133
- this.viewProcessLink = page.getByRole('button', {
134
- name: 'View process in Operate',
135
- });
136
- this.nameInput = page.getByLabel('Name', { exact: true });
137
- this.diagramBreadcrumb = page.locator('[data-test="breadcrumb-diagram"]');
138
- this.renameDiagramNameButton = page.getByText('Rename');
139
- this.diagramNameInput = page.locator('[data-test="editable-input"]');
140
- this.variableInput = page.locator('textarea#variables-json');
141
- this.embedFormButton = page.getByRole('button', { name: 'Link form' });
142
- this.embedButton = page.locator('[data-test="confirm-move"]');
143
- this.newForm = page
144
- .locator('[data-test="item-New form"]')
145
- .getByText('New form');
146
- this.deployMainButton = page.locator('[data-test="deploy-button"]');
147
- this.deployMenuItem = page.getByRole('menuitem', {
148
- name: 'Deploy',
149
- });
150
- this.backupDeployButton = page.getByRole('button', {
151
- name: 'Deploy',
152
- });
153
- this.deploySubButton = page.locator('[data-test="deploy-action"]');
154
- this.cancelButton = page.getByRole('button', { name: 'Cancel' });
155
- this.restConnectorOption = page.getByRole('listitem', {
156
- name: 'REST Outbound Connector',
157
- exact: true,
158
- });
159
- this.webhookMessageStartEventConnectorOption = page.getByRole('listitem', {
160
- name: 'Webhook Message Start Event Connector',
161
- exact: true,
162
- });
163
- this.webhookTab = page.getByRole('tab', { name: 'Webhook' });
164
- this.webhookIsActiveButton = page.getByRole('button', {
165
- name: 'Webhook is active in Test',
166
- });
167
- this.copyWebhookUrlToClipboardButton = page.getByRole('textbox', {
168
- name: 'Copy to clipboard',
169
- });
170
- this.createTask = page.getByTitle('Create task');
171
- this.createEndEvent = page.getByTitle('Create end event');
172
- this.canvas = page.locator('rect').nth(1);
173
- this.endEventCanvas = page.locator('[class="bjs-container"]');
174
- this.connectToOtherElementButton = page
175
- .getByLabel('Connect to other element')
176
- .locator('path');
177
- this.firstPlacedElement = page.locator('g:nth-child(2) > .djs-element > .djs-hit');
178
- this.firstPlacedGateway = page
179
- .locator('[data-element-id*="Gateway"]')
180
- .first();
181
- this.secondPlacedElement = page
182
- .locator('[class= "djs-element djs-shape"]')
183
- .last();
184
- this.secondPlacedGateway = page
185
- .locator('[data-element-id*="Gateway"]')
186
- .last();
187
- this.marketPlaceButton = page.getByTitle('Browse Marketplace for more Connectors');
188
- this.publicHolidayConnectorOption = page
189
- .locator('[data-test="modeler"]')
190
- .getByText('Worldwide Public Holiday');
191
- this.publicHolidayYearOption = page.getByLabel('Year');
192
- this.publicHolidayCountryCodeOption = page.getByLabel('Countrycode');
193
- this.implementationSection = page.locator('[data-group-id="group-userTaskImplementation"]');
194
- this.implementationOptions = page.locator('#bio-properties-panel-userTaskImplementation');
195
- this.firstElement = page.locator('[class="djs-element djs-shape"]').nth(0);
196
- this.secondElement = page.locator('[class="djs-element djs-shape"]').nth(1);
197
- this.thirdElement = page.locator('[class="djs-element djs-shape"]').nth(2);
198
- this.assignmentSection = page.locator('[data-group-id="group-assignmentDefinition"]');
199
- this.form = page.locator('[class="fjs-container"]');
200
- this.priorityInput = page.getByRole('textbox', { name: 'priority' });
201
- this.payloadNameInput = page.getByLabel('Full Name');
202
- this.payloadDateInput = page.getByLabel('Date of Birth');
203
- this.payloadCheckboxInput = this.form.getByLabel('Agree');
204
- this.payloadNumberInput = this.form.getByLabel('Count');
205
- this.formPropertySection = page.locator('[data-group-id="group-form"]');
206
- this.formLinkingTypeDropdown = page.getByLabel('Type');
207
- this.formLinkTypeOptions = page.locator('#bio-properties-panel-formType');
208
- this.addFormJsonConfigurationInput = page.getByLabel('Form JSON configuration');
209
- this.intermediateBoundaryEvent = page.getByTitle('Append intermediate/boundary');
210
- this.intermediateWebhookConnectorOption = page.getByRole('listitem', {
211
- name: 'Webhook Intermediate Event',
212
- });
213
- this.correlationKeyPayloadInput = page.getByLabel('Correlation key (payload)');
214
- this.correlationKeyProcessInput = page.getByLabel('Correlation key (process)');
215
- this.serviceTaskOption = page.getByRole('listitem', { name: 'Service Task' });
216
- this.taskDefinitionPanel = page.locator('[data-group-id="group-taskDefinition"]');
217
- this.jobTypeInput = page.getByRole('textbox', { name: /job type/i });
218
- this.playTab = page.getByRole('tab', {
219
- name: 'Play',
220
- });
221
- this.closeButton = page.getByRole('button', { name: 'Close' });
222
- this.rbaEnabledDeployedDialog = page.getByRole('dialog', {
223
- name: 'Process successfully deployed',
224
- });
225
- this.assignmentSection = page.locator('[data-group-id="group-assignmentDefinition"]');
226
- this.assigneeInput = page.getByRole('textbox', { name: 'assignee' });
227
- this.candidateGroupsInput = page.getByRole('textbox', {
228
- name: 'candidate groups',
229
- });
230
- this.candidateUsersInput = page.getByRole('textbox', {
231
- name: 'candidate users',
232
- });
233
- this.appendGatewayButton = page.getByTitle('append gateway');
234
- this.parallelGatewayOption = page.getByText('parallel gateway');
235
- this.firstPlacedGateway = page
236
- .locator('[data-element-id*="Gateway"]')
237
- .first();
238
- this.secondPlacedGateway = page
239
- .locator('[data-element-id*="Gateway"]')
240
- .last();
241
- this.continueToPlayButton = page.getByRole('button', { name: 'Continue' });
242
- this.assigneeInput = page.getByRole('textbox', { name: 'assignee' });
243
- this.candidateGroupsInput = page.getByRole('textbox', {
244
- name: 'candidate groups',
245
- });
246
- this.deployDiagramDialog = page.getByRole('dialog', {
247
- name: 'Deploy diagram',
248
- });
249
- this.timerEventOption = page.getByRole('listitem', {
250
- name: 'Timer intermediate catch event',
251
- exact: true,
252
- });
253
- this.timerEventSettings = page.getByText(/^Timer$/).first();
254
- this.timerType = page.getByLabel('Type');
255
- this.timerValue = page.getByLabel('Value');
256
- this.eighthPlacedElement = page
257
- .locator('g:nth-child(8) > .djs-element > .djs-hit')
258
- .first();
259
- this.processIdSecondLocator = page.getByLabel('Process ID');
260
- this.publicationSection = page.locator('[data-group-id="group-process-publication"]');
261
- this.publicAccessToggle = page.getByRole('switch', {
262
- name: 'Toggle public access',
263
- });
264
- this.publicationTab = page.getByRole('tab', { name: 'Publication' });
265
- this.copyPublicLinkButton = page.getByRole('button', {
266
- name: 'Copy to clipboard',
267
- });
268
- this.formLinkedSuccessMessage = page
269
- .locator('.cds--toast-notification__subtitle')
270
- .getByText('Form has been successfully linked.');
271
- this.diagramNameBreadcrumb = (diagramName) => page.locator('button[data-test="breadcrumb-diagram"]', {
272
- hasText: diagramName,
273
- });
274
- this.dialog = page.getByRole('dialog');
275
- }
276
- async clickEditDiagramNameButton() {
277
- await this.renameDiagramNameButton.click({ timeout: 10000 });
278
- }
279
- async modelJobWorkerDiagram(processName, embedFrom = false) {
280
- await (0, test_1.expect)(this.generalPanel).toBeVisible({
281
- timeout: 120000,
282
- });
283
- await this.enterDiagramName(processName);
284
- await (0, sleep_1.sleep)(10000);
285
- await this.clickAppendElementButton();
286
- await this.clickAppendTaskButton();
287
- await this.clickChangeTypeButton();
288
- await this.clickUserTaskOption();
289
- await this.chooseImplementationOption('jobWorker');
290
- await (0, sleep_1.sleep)(3000);
291
- if (embedFrom) {
292
- await this.chooseFormLinkingTypeOption('Camunda Form (embedded)');
293
- }
294
- await this.clickAppendElementButton();
295
- await this.clickAppendEndEventButton();
296
- await (0, sleep_1.sleep)(20000);
297
- }
298
- async assertProcessInstanceLinkWithRetry(clusterName) {
299
- const maxRetries = 3;
300
- for (let attempt = 0; attempt < maxRetries; attempt++) {
301
- try {
302
- await (0, test_1.expect)(this.viewProcessInstanceLink).toBeVisible({
303
- timeout: 30000,
304
- });
305
- return;
306
- }
307
- catch (error) {
308
- if (attempt < maxRetries - 1) {
309
- console.warn(`View process instance status attempt ${attempt + 1} failed. Retrying...`);
310
- await this.page.reload();
311
- await (0, randomSleep_1.randomSleep)(10000, 30000);
312
- await this.runProcessInstance(clusterName);
313
- }
314
- else {
315
- throw new Error(`Assertion failed after ${maxRetries} attempts` + error);
316
- }
317
- }
318
- }
319
- }
320
- async modelCamundaUserTaskDiagram(processName, processId = '', formName = '') {
321
- await (0, test_1.expect)(this.generalPanel).toBeVisible({
322
- timeout: 180000,
323
- });
324
- await (0, sleep_1.sleep)(1000);
325
- await this.enterDiagramName(processName);
326
- await (0, sleep_1.sleep)(10000);
327
- if (processId.length > 0) {
328
- await this.clickStartEventElement();
329
- await this.clickGeneralPropertiesPanel();
330
- await this.clickIdInput();
331
- await this.fillIdInput(processId);
332
- await this.clickNameInput();
333
- await this.fillNameInput(processName);
334
- await this.clickStartEventElement();
335
- }
336
- await this.clickAppendElementButton();
337
- await this.clickAppendTaskButton();
338
- await this.clickChangeTypeButton();
339
- await this.clickUserTaskOption();
340
- await this.assertImplementationOption('zeebeUserTask');
341
- if (formName.length > 0) {
342
- await this.clickEmbedFormButton();
343
- await this.clickForm(formName);
344
- await this.clickEmbedButton();
345
- }
346
- await this.clickAppendElementButton();
347
- await this.clickAppendEndEventButton();
348
- await this.clickCanvas();
349
- await this.assertThreeElementsVisible();
350
- await (0, sleep_1.sleep)(20000);
351
- }
352
- async clickCandidateUsersInput() {
353
- await this.candidateUsersInput.click({ timeout: 60000 });
354
- }
355
- async clickSecondDeployButton() {
356
- await this.backupDeployButton.click({ timeout: 60000 });
357
- }
358
- async fillCandidateUsersInput(candidateUser) {
359
- await this.candidateUsersInput.fill(candidateUser, { timeout: 60000 });
360
- }
361
- async selectUserTask(userTask) {
362
- await this.page.locator(`g[data-element-id="${userTask}"]`).click();
363
- }
364
- async clickAssigneeInput() {
365
- await this.assigneeInput.click({ timeout: 60000 });
366
- }
367
- async fillAssigneeInput(name) {
368
- await this.assigneeInput.fill(name, { timeout: 60000 });
369
- await this.page.waitForTimeout(1000);
370
- }
371
- async clickUserTask(id) {
372
- const priorityUserTask = this.page.locator(`[data-element-id="${id}"]`);
373
- await priorityUserTask.click({ timeout: 60000 });
374
- }
375
- async clickForm(name) {
376
- await this.page
377
- .locator(`[data-test="item-${name}"]`)
378
- .getByText(name)
379
- .click({ timeout: 90000 });
380
- }
381
- async clickGeneralPropertiesPanel() {
382
- const isExpanded = (await this.generalPanel
383
- .locator('.bio-properties-panel-group-header.open')
384
- .count()) > 0;
385
- if (!isExpanded) {
386
- await this.generalPanel.click({ timeout: 60000 });
387
- }
388
- }
389
- async expandAssignmentSection() {
390
- const isExpanded = (await this.assignmentSection
391
- .locator('[data-group-id="group-assignmentDefinition"] .bio-properties-panel-group-header.open')
392
- .count()) > 0;
393
- if (!isExpanded) {
394
- await this.assignmentSection.click({ timeout: 60000 });
395
- }
396
- }
397
- async clickIdInput() {
398
- try {
399
- await this.idInput.click();
400
- }
401
- catch {
402
- await this.processIdSecondLocator.click();
403
- }
404
- }
405
- async fillIdInput(id) {
406
- try {
407
- await this.idInput.fill(id);
408
- }
409
- catch {
410
- await this.processIdSecondLocator.fill(id);
411
- }
412
- }
413
- async clickPriorityInput() {
414
- const isExpanded = (await this.assignmentSection
415
- .locator('.bio-properties-panel-group-header empty open')
416
- .count()) > 0;
417
- if (!isExpanded) {
418
- await this.assignmentSection.click();
419
- }
420
- await this.priorityInput.click({ timeout: 30000 });
421
- }
422
- async clickCloseButton() {
423
- await this.closeButton.click({ timeout: 60000 });
424
- }
425
- async clickAdditionalActionsButton() {
426
- await (0, test_1.expect)(this.additionalActionsButton).toBeVisible({ timeout: 20000 });
427
- await this.additionalActionsButton.click({ timeout: 60000 });
428
- }
429
- async clickDeployMenuItem() {
430
- await (0, test_1.expect)(this.deployMenuItem).toBeVisible({ timeout: 20000 });
431
- await this.deployMenuItem.click({ timeout: 60000 });
432
- }
433
- async deployDiagram(clusterName) {
434
- await this.clickDeployButtonWithRetry();
435
- await (0, test_1.expect)(this.deployDiagramDialog).toBeVisible({
436
- timeout: 30000,
437
- });
438
- //Select the correct cluster if multiple exist
439
- const cluster = this.deployDiagramDialog.getByText(clusterName);
440
- await (0, test_1.expect)(cluster).toBeVisible({
441
- timeout: 30000,
442
- });
443
- await cluster.click();
444
- await (0, test_1.expect)(this.deployDiagramDialog
445
- .locator('label')
446
- .filter({
447
- hasText: clusterName,
448
- })
449
- .getByRole('switch')).toBeChecked({ timeout: 30000 });
450
- //Check healthy status of the selected cluster
451
- const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
452
- await (0, test_1.expect)(this.deployDiagramDialog).toHaveText(regex, {
453
- timeout: 120000,
454
- });
455
- await (0, test_1.expect)(this.deploySubButton).toBeVisible({
456
- timeout: 120000,
457
- });
458
- await this.clickDeploySubButtonWithRetry();
459
- await (0, test_1.expect)(this.viewProcessLink).toBeVisible({
460
- timeout: 180000,
461
- });
462
- await (0, test_1.expect)(this.viewProcessLink).toBeHidden({
463
- timeout: 120000,
464
- });
465
- }
466
- async runProcessInstance(clusterName, variables = '', formVariables = {}, textToVisible = '') {
467
- const maxRetries = 3;
468
- for (let attempt = 0; attempt < maxRetries; attempt++) {
469
- try {
470
- await (0, test_1.expect)(this.startInstanceMainButton).toBeVisible({
471
- timeout: 60000,
472
- });
473
- await this.clickStartInstanceMainButton();
474
- await (0, test_1.expect)(this.deployAndRunDialog).toBeVisible({
475
- timeout: 30000,
476
- });
477
- //Select the correct cluster if multiple exist
478
- const cluster = this.deployAndRunDialog.getByText(clusterName);
479
- await (0, test_1.expect)(cluster).toBeVisible({
480
- timeout: 30000,
481
- });
482
- await cluster.click();
483
- await (0, test_1.expect)(this.deployAndRunDialog
484
- .locator('label')
485
- .filter({
486
- hasText: clusterName,
487
- })
488
- .getByRole('switch')).toBeChecked({ timeout: 30000 });
489
- //Check healthy status of the selected cluster
490
- const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
491
- await (0, test_1.expect)(this.deployAndRunDialog).toHaveText(regex, {
492
- timeout: 120000,
493
- });
494
- if (variables.length > 0) {
495
- await (0, test_1.expect)(this.variableInput).toBeVisible({
496
- timeout: 60000,
497
- });
498
- await this.clickVariableInput();
499
- await this.fillVariableInput(variables);
500
- }
501
- if (Object.keys(formVariables).length > 0) {
502
- if ('formName' in formVariables && formVariables['formName']) {
503
- await this.fillStartFormName(formVariables['formName']);
504
- }
505
- if ('checkbox' in formVariables &&
506
- formVariables['checkbox'] == 'true') {
507
- await this.checkStartFormCheckbox();
508
- }
509
- if ('startDate' in formVariables && formVariables['startDate']) {
510
- await this.fillStartFormDate(formVariables['startDate']);
511
- }
512
- if ('startNumber' in formVariables && formVariables['startNumber']) {
513
- await this.fillStartFormNumber(formVariables['startNumber']);
514
- }
515
- }
516
- if (textToVisible.length > 0) {
517
- await (0, test_1.expect)(this.deployAndRunDialog.getByText(textToVisible)).toBeVisible({
518
- timeout: 30000,
519
- });
520
- }
521
- await this.clickStartInstanceSubButton();
522
- return;
523
- }
524
- catch (error) {
525
- if (attempt < maxRetries - 1) {
526
- console.warn(`Attempt ${attempt + 1} failed for running process. Retrying...`);
527
- await this.page.reload();
528
- await (0, randomSleep_1.randomSleep)(10000, 30000);
529
- }
530
- else {
531
- console.error(error);
532
- throw new Error(`Assertion failed after ${maxRetries} attempts`);
533
- }
534
- }
535
- }
536
- }
537
- async fillPriorityInput(priority) {
538
- await this.priorityInput.fill(priority, { timeout: 60000 });
539
- await (0, test_1.expect)(this.page
540
- .getByText('Must be an expression, or an integer between 0 and 100')
541
- .first()).not.toBeVisible({ timeout: 30000 });
542
- await this.page.waitForTimeout(1000);
543
- }
544
- async clickStartEventElement() {
545
- await (0, test_1.expect)(this.startEventElement).toBeVisible({ timeout: 15000 });
546
- await this.startEventElement.click();
547
- }
548
- async clickAppendTaskButton() {
549
- await (0, test_1.expect)(this.appendTaskButton).toBeVisible({ timeout: 15000 });
550
- await this.appendTaskButton.click();
551
- }
552
- async clickAppendGatewayButton() {
553
- await (0, test_1.expect)(this.appendTaskButton).toBeVisible({ timeout: 15000 });
554
- await this.appendGatewayButton.click();
555
- }
556
- async clickChangeTypeButton() {
557
- await (0, test_1.expect)(this.changeTypeButton).toBeVisible({ timeout: 15000 });
558
- await this.changeTypeButton.click();
559
- }
560
- async clickUserTaskOption() {
561
- await (0, test_1.expect)(this.userTaskOption).toBeVisible({ timeout: 15000 });
562
- await this.userTaskOption.click();
563
- }
564
- async assertImplementationOption(implementationType) {
565
- await this.expandImplementationOptionIfNecessary();
566
- (0, test_1.expect)(await this.implementationOptions.inputValue()).toEqual(implementationType);
567
- }
568
- async expandImplementationOptionIfNecessary() {
569
- const isExpanded = (await this.implementationSection
570
- .locator('.bio-properties-panel-group-header empty open')
571
- .count()) > 0;
572
- if (!isExpanded) {
573
- await this.implementationSection.click();
574
- }
575
- }
576
- async clickParallelGatewayOption() {
577
- await this.parallelGatewayOption.click({ timeout: 90000 });
578
- }
579
- async clickAppendEndEventButton(parentElement) {
580
- try {
581
- await this.appendEndEventButton.click({ timeout: 120000 });
582
- }
583
- catch (error) {
584
- await this.page.reload();
585
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
586
- await sleep(10000);
587
- if (parentElement == undefined) {
588
- await this.clickSecondPlacedElement();
589
- }
590
- else if (parentElement == 'parallelGateway') {
591
- await this.clickSecondPlacedGateway();
592
- }
593
- await this.appendElementButton.hover();
594
- await this.appendEndEventButton.click({ timeout: 120000 });
595
- }
596
- }
597
- async addParallelUserTasks(numberOfTasks, taskName) {
598
- try {
599
- await this.clickAppendElementButton();
600
- }
601
- catch (error) {
602
- await this.page.reload();
603
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
604
- await sleep(10000);
605
- await this.clickFirstPlacedElement();
606
- await this.appendElementButton.hover();
607
- }
608
- await this.clickAppendGatewayButton();
609
- await this.clickChangeTypeButton();
610
- await this.clickParallelGatewayOption();
611
- await this.clickAppendElementButton();
612
- await this.clickAppendTaskButton();
613
- await this.clickChangeTypeButton();
614
- await this.clickUserTaskOption();
615
- await this.assertImplementationOption('zeebeUserTask');
616
- await this.clickGeneralPropertiesPanel();
617
- await this.clickNameInput();
618
- await this.fillNameInput(taskName + '1');
619
- await this.clickIdInput();
620
- await this.fillIdInput(taskName + '1');
621
- await this.clickAppendElementButton();
622
- await this.clickAppendGatewayButton();
623
- await this.clickChangeTypeButton();
624
- await this.clickParallelGatewayOption();
625
- for (let i = 2; i <= numberOfTasks; i++) {
626
- await this.clickFirstPlacedGateway();
627
- await this.clickAppendElementButton();
628
- await this.clickAppendTaskButton();
629
- await this.clickChangeTypeButton();
630
- await this.clickUserTaskOption();
631
- await this.assertImplementationOption('zeebeUserTask');
632
- await this.clickNameInput();
633
- await this.fillNameInput(taskName + i);
634
- await this.clickIdInput();
635
- await this.fillIdInput(taskName + i);
636
- await this.clickConnectToOtherElementButton();
637
- await this.clickSecondPlacedGateway();
638
- await this.clickCanvas();
639
- }
640
- await this.clickSecondPlacedGateway();
641
- }
642
- async clickStartInstanceMainButton() {
643
- await this.startInstanceMainButton.click({ timeout: 90000 });
644
- }
645
- async clickStartInstanceSubButton() {
646
- await this.startInstanceSubButton.click({ timeout: 90000 });
647
- }
648
- async clickViewProcessInstanceLink() {
649
- await this.viewProcessInstanceLink.click({ timeout: 180000 });
650
- }
651
- async clickNameInput() {
652
- await this.nameInput.click({ timeout: 60000 });
653
- }
654
- async fillNameInput(name) {
655
- await this.nameInput.fill(name, { timeout: 60000 });
656
- }
657
- async setPriority(taskName, priority, numberOfTasks) {
658
- for (let i = 1; i <= numberOfTasks; i++) {
659
- const userTaskId = taskName + i;
660
- const priorityUserTask = this.page.locator(`[data-element-id="${userTaskId}"]`);
661
- await priorityUserTask.click({ timeout: 60000 });
662
- await this.expandAssignmentSection();
663
- await this.clickPriorityInput();
664
- await this.fillPriorityInput(priority.toString());
665
- await (0, sleep_1.sleep)(5000);
666
- await this.clickCanvas();
667
- priority += 25;
668
- }
669
- }
670
- async clickDiagramBreadcrumb() {
671
- await this.diagramBreadcrumb.click({ timeout: 10000 });
672
- }
673
- async clickRenameDiagramNameButton() {
674
- await (0, test_1.expect)(this.renameDiagramNameButton).toBeVisible({ timeout: 30000 });
675
- await this.renameDiagramNameButton.click({ timeout: 30000 });
676
- }
677
- async assertThreeElementsVisible() {
678
- await (0, test_1.expect)(this.firstElement).toBeVisible({ timeout: 30000 });
679
- await (0, test_1.expect)(this.secondElement).toBeVisible({ timeout: 30000 });
680
- await (0, test_1.expect)(this.thirdElement).toBeVisible({ timeout: 30000 });
681
- }
682
- async enterDiagramName(name) {
683
- await this.diagramNameInput.fill(name, { timeout: 90000 });
684
- await this.diagramNameInput.press('Enter', { timeout: 90000 });
685
- }
686
- async clickVariableInput() {
687
- await this.variableInput.click({ timeout: 60000 });
688
- }
689
- async fillVariableInput(variable) {
690
- await this.variableInput.fill(variable);
691
- }
692
- async clickEmbedFormButton() {
693
- await this.embedFormButton.click({ timeout: 60000 });
694
- }
695
- async clickEmbedButton() {
696
- await this.embedButton.click({ timeout: 60000 });
697
- }
698
- async clickNewForm() {
699
- await this.newForm.click({ timeout: 120000 });
700
- }
701
- async clickDeployMainButton() {
702
- await this.deployMainButton.click({ timeout: 120000, force: true });
703
- }
704
- async clickDeploySubButton() {
705
- await this.deploySubButton.click({ timeout: 120000, force: true });
706
- }
707
- async clickCancelButton() {
708
- await this.cancelButton.click({ timeout: 60000 });
709
- }
710
- async clickRestConnectorOption() {
711
- await this.restConnectorOption.click({ timeout: 60000 });
712
- }
713
- async clickWebhookMessageStartEventConnectorOption() {
714
- await this.webhookMessageStartEventConnectorOption.click({ timeout: 60000 });
715
- }
716
- async clickWebhookTab() {
717
- await this.webhookTab.click({ timeout: 120000 });
718
- }
719
- async clickWebhookIsActiveButton() {
720
- await this.webhookIsActiveButton.click({ timeout: 60000 });
721
- }
722
- async clickDeployButton() {
723
- try {
724
- await this.clickAdditionalActionsButton();
725
- await this.clickDeployMenuItem();
726
- return;
727
- }
728
- catch (error) {
729
- await (0, test_1.expect)(this.deployMainButton).toBeVisible({
730
- timeout: 30000,
731
- });
732
- await this.deployMainButton.click({ timeout: 30000, force: true });
733
- }
734
- }
735
- async clickDeployButtonWithRetry(retries = 3) {
736
- for (let i = 0; i < retries; i++) {
737
- try {
738
- await this.clickDeployButton();
739
- return;
740
- }
741
- catch (error) {
742
- console.error(`Attempt ${i + 1} to click deploy button failed: ${error}`);
743
- // Refresh the page
744
- await this.page.reload();
745
- await (0, sleep_1.sleep)(10000);
746
- }
747
- }
748
- throw new Error(`Failed to click deploy button after ${retries} retries`);
749
- }
750
- async clickDeploySubButtonWithRetry(retries = 3) {
751
- for (let i = 0; i < retries; i++) {
752
- try {
753
- await this.deploySubButton.click({ timeout: 120000, force: true });
754
- return;
755
- }
756
- catch (error) {
757
- console.error(`Attempt ${i + 1} to click deploy button failed: ${error}`);
758
- await this.page.reload();
759
- await (0, sleep_1.sleep)(10000);
760
- await this.clickDeployButtonWithRetry();
761
- }
762
- }
763
- throw new Error(`Failed to click deploy button after ${retries} retries`);
764
- }
765
- async clickCreateTask() {
766
- await this.createTask.click({ timeout: 60000 });
767
- }
768
- async clickCreateEndEvent() {
769
- await this.createEndEvent.click({ timeout: 60000 });
770
- }
771
- async clickCanvas() {
772
- await this.canvas.click({ timeout: 60000 });
773
- }
774
- async clickEndEventCanvas() {
775
- await this.endEventCanvas.click({ timeout: 60000 });
776
- }
777
- async clickConnectToOtherElementButton() {
778
- await this.connectToOtherElementButton.click({ timeout: 60000 });
779
- }
780
- async clickFirstPlacedElement() {
781
- await this.firstPlacedElement.click({ timeout: 90000 });
782
- }
783
- async clickSecondPlacedElement() {
784
- await this.secondPlacedElement.click({ timeout: 12000 });
785
- }
786
- async clickSecondElement() {
787
- await this.secondElement.click({ timeout: 12000 });
788
- }
789
- async clickSecondPlacedGateway() {
790
- try {
791
- await this.secondPlacedGateway.click({ timeout: 60000 });
792
- await this.appendElementButton.isVisible({ timeout: 60000 });
793
- }
794
- catch (error) {
795
- await this.page.reload();
796
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
797
- await sleep(10000);
798
- await this.secondPlacedGateway.click({ timeout: 60000 });
799
- }
800
- }
801
- async clickFirstPlacedGateway() {
802
- try {
803
- await this.firstPlacedGateway.click({ timeout: 60000 });
804
- await this.appendElementButton.isVisible({ timeout: 60000 });
805
- }
806
- catch (error) {
807
- await this.page.reload();
808
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
809
- await sleep(10000);
810
- await this.firstPlacedGateway.click({ timeout: 60000 });
811
- }
812
- }
813
- async clickAppendElementButton() {
814
- for (let attempt = 1; attempt <= 4; attempt++) {
815
- try {
816
- await (0, sleep_1.sleep)(10000);
817
- await this.appendElementButton.hover({ timeout: 60000, force: true });
818
- return; // Exit loop if successful
819
- }
820
- catch (error) {
821
- if (attempt === 4)
822
- throw error; // Rethrow after 3 failed attempts
823
- }
824
- }
825
- }
826
- async clickMarketPlaceButton() {
827
- const maxRetries = 3;
828
- for (let retries = 0; retries < maxRetries; retries++) {
829
- try {
830
- if (retries === 0) {
831
- await this.marketPlaceButton.click({ timeout: 30000 });
832
- }
833
- else {
834
- await this.changeTypeButton.click({ force: true, timeout: 30000 });
835
- await this.marketPlaceButton.click({ timeout: 30000 });
836
- }
837
- return;
838
- }
839
- catch (error) {
840
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
841
- await new Promise((resolve) => setTimeout(resolve, 10000));
842
- }
843
- }
844
- throw new Error(`Failed to click the button after ${maxRetries} attempts.`);
845
- }
846
- async clickPublicHolidayConnectorOption() {
847
- const maxRetries = 4;
848
- for (let retries = 0; retries < maxRetries; retries++) {
849
- try {
850
- if (retries <= 2) {
851
- await this.publicHolidayConnectorOption.click({ timeout: 60000 });
852
- }
853
- else {
854
- await this.clickMarketPlaceButton();
855
- const connectorMarketplacePage = new ConnectorMarketplacePage_1.ConnectorMarketplacePage(this.page);
856
- await connectorMarketplacePage.clickSearchForConnectorTextbox();
857
- await connectorMarketplacePage.fillSearchForConnectorTextbox('Public Holiday Connector');
858
- await (0, sleep_1.sleep)(10000);
859
- await connectorMarketplacePage.downloadConnectorToProject();
860
- await this.publicHolidayConnectorOption.click({ timeout: 120000 });
861
- }
862
- return;
863
- }
864
- catch (error) {
865
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
866
- await this.page.reload();
867
- await new Promise((resolve) => setTimeout(resolve, 10000));
868
- await this.clickCanvas();
869
- await this.secondElement.click({ timeout: 60000 });
870
- await this.clickChangeTypeButton();
871
- }
872
- }
873
- throw new Error(`Failed to click the button after ${maxRetries} attempts.`);
874
- }
875
- async clickPublicHolidayYearOption() {
876
- await this.publicHolidayYearOption.click({ timeout: 60000 });
877
- }
878
- async fillPublicHolidayYearOption(year) {
879
- await this.publicHolidayYearOption.fill(year);
880
- }
881
- async clickPublicHolidayCountryCodeOption() {
882
- await this.publicHolidayCountryCodeOption.click({ timeout: 60000 });
883
- }
884
- async fillPublicHolidayCountryCodeOption(countryCode) {
885
- await this.publicHolidayCountryCodeOption.fill(countryCode);
886
- }
887
- async chooseImplementationOption(implementationType) {
888
- const isExpanded = (await this.implementationSection
889
- .locator('.bio-properties-panel-group-header.empty.open')
890
- .count()) > 0;
891
- if (!isExpanded) {
892
- await this.implementationSection.click();
893
- }
894
- await this.implementationOptions.selectOption(implementationType);
895
- await this.assertImplementationOption(implementationType);
896
- }
897
- async fillStartFormName(name) {
898
- await this.payloadNameInput.fill(name);
899
- }
900
- async fillStartFormDate(date) {
901
- await this.payloadDateInput.click();
902
- await this.payloadDateInput.fill(date);
903
- await this.payloadDateInput.press('Enter');
904
- }
905
- async checkStartFormCheckbox() {
906
- await this.payloadCheckboxInput.check();
907
- }
908
- async fillStartFormNumber(number) {
909
- await this.payloadNumberInput.fill(number);
910
- }
911
- async chooseFormLinkingTypeOption(formLinkType) {
912
- await this.formPropertySection.click();
913
- const jsonConfig = JSON.stringify({
914
- executionPlatform: 'Camunda Cloud',
915
- executionPlatformVersion: '8.6.0',
916
- exporter: {
917
- name: 'Camunda Web Modeler',
918
- version: 'ca7603f',
919
- },
920
- schemaVersion: 17,
921
- id: 'Form_0ex0ayi',
922
- components: [
923
- {
924
- label: 'Full Name',
925
- type: 'textfield',
926
- id: 'Textfield_0',
927
- validate: {
928
- minLength: 2,
929
- required: true,
930
- },
931
- key: 'fullName',
932
- },
933
- ],
934
- generated: true,
935
- type: 'default',
936
- });
937
- await this.formLinkTypeOptions.selectOption(formLinkType);
938
- await this.addFormJsonConfigurationInput.click();
939
- await this.addFormJsonConfigurationInput.fill(jsonConfig);
940
- }
941
- async clickIntermediateBoundaryEvent() {
942
- await this.intermediateBoundaryEvent.click({ timeout: 60000 });
943
- }
944
- async clickIntermediateWebhookConnectorOption() {
945
- await this.intermediateWebhookConnectorOption.click({ timeout: 60000 });
946
- }
947
- async clickCorrelationKeyProcessInput() {
948
- await this.correlationKeyProcessInput.click({ timeout: 60000 });
949
- }
950
- async fillCorrelationKeyProcessInput(correlationKeyProcess) {
951
- await this.correlationKeyProcessInput.fill(correlationKeyProcess);
952
- }
953
- async clickCorrelationKeyPayloadInput() {
954
- await this.correlationKeyPayloadInput.click({ timeout: 60000 });
955
- }
956
- async fillCorrelationKeyPayloadInput(correlationKeyPayload) {
957
- await this.correlationKeyPayloadInput.fill(correlationKeyPayload);
958
- }
959
- async clickServiceTaskOption() {
960
- const maxRetries = 3;
961
- for (let retries = 0; retries < maxRetries; retries++) {
962
- try {
963
- if (retries === 0) {
964
- await this.serviceTaskOption.click({ timeout: 30000, force: true });
965
- }
966
- else {
967
- await this.changeTypeButton.click({ force: true, timeout: 30000 });
968
- await this.serviceTaskOption.click({ timeout: 30000, force: true });
969
- }
970
- return;
971
- }
972
- catch (error) {
973
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
974
- await new Promise((resolve) => setTimeout(resolve, 10000));
975
- }
976
- }
977
- throw new Error(`Failed to click the button after ${maxRetries} attempts.`);
978
- }
979
- async clickTaskDefinitionPropertiesPanel() {
980
- const isExpanded = (await this.taskDefinitionPanel
981
- .locator('.bio-properties-panel-group-header empty open')
982
- .count()) > 0;
983
- if (!isExpanded) {
984
- await this.taskDefinitionPanel.click();
985
- }
986
- }
987
- async clickJobTypeInput() {
988
- await this.jobTypeInput.click();
989
- }
990
- async fillJobTypeInput(name) {
991
- await this.jobTypeInput.fill(name);
992
- }
993
- async switchToPlay() {
994
- await this.playTab.click();
995
- }
996
- async completePlayConfiguration(clusterName) {
997
- const timeout = 30000;
998
- let attempts = 0;
999
- const maxRetries = 2;
1000
- while (attempts < maxRetries) {
1001
- try {
1002
- if (attempts > 0)
1003
- await this.switchToPlay(); // Call switchToPlay on subsequent attempts
1004
- await this.selectCluster(clusterName);
1005
- await this.continueToPlayButton.click({ timeout });
1006
- await (0, test_1.expect)(this.page.getByText('Play environment is ready')).toBeVisible({ timeout: 90000 });
1007
- return; // Exit if successful
1008
- }
1009
- catch (error) {
1010
- if (attempts >= maxRetries - 1)
1011
- throw error;
1012
- await this.page.reload();
1013
- attempts++;
1014
- }
1015
- }
1016
- }
1017
- async selectCluster(clusterName) {
1018
- await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 30000 });
1019
- const healthCheckTimeout = 30000;
1020
- const healthyRegex = new RegExp(`${clusterName}.*?HealthydevManage`);
1021
- const cluster = this.dialog.getByText(clusterName);
1022
- await (0, test_1.expect)(cluster).toBeVisible({ timeout: 30000 });
1023
- await cluster.click();
1024
- await (0, test_1.expect)(this.dialog
1025
- .locator('label')
1026
- .filter({ hasText: clusterName })
1027
- .getByRole('switch')).toBeChecked({ timeout: 30000 });
1028
- await (0, test_1.expect)(this.dialog).toHaveText(healthyRegex, {
1029
- timeout: healthCheckTimeout,
1030
- });
1031
- }
1032
- async clickCandidateGroupsInput() {
1033
- await this.candidateGroupsInput.click({ timeout: 60000 });
1034
- }
1035
- async fillCandidateGroupsInput(name) {
1036
- await this.candidateGroupsInput.fill(name, { timeout: 60000 });
1037
- await this.page.waitForTimeout(1000);
1038
- }
1039
- async clickTimerEventOption() {
1040
- await this.timerEventOption.click();
1041
- }
1042
- async clickTimerEventSettings() {
1043
- await this.timerEventSettings.click();
1044
- }
1045
- async selectTimerType(type) {
1046
- await this.timerType.selectOption(type);
1047
- }
1048
- async clickTimerValue() {
1049
- await this.timerValue.click();
1050
- }
1051
- async fillTimerValue(value) {
1052
- await this.timerValue.fill(value);
1053
- }
1054
- async clickEighthPlacedElement() {
1055
- await this.eighthPlacedElement.click();
1056
- }
1057
- async expandFormsSection() {
1058
- const isExpanded = (await this.formPropertySection
1059
- .locator('[data-group-id="group-form"] .bio-properties-panel-group-header.open')
1060
- .count()) > 0;
1061
- if (!isExpanded) {
1062
- await this.formPropertySection.click({ timeout: 60000 });
1063
- }
1064
- }
1065
- async linkFormToStartEvent(formName) {
1066
- await this.startEventElement.click({ timeout: 90000 });
1067
- await (0, sleep_1.sleep)(1000);
1068
- await this.embedForm(formName);
1069
- }
1070
- async expandPublicationSection() {
1071
- const isExpanded = (await this.publicationSection
1072
- .locator('.bio-properties-panel-group-header.open')
1073
- .count()) > 0;
1074
- if (!isExpanded) {
1075
- await this.publicationSection.click({ timeout: 60000 });
1076
- }
1077
- }
1078
- async enablePublicAccessIfDisabled() {
1079
- await this.expandPublicationSection();
1080
- const isDisabled = (await this.publicAccessToggle.getAttribute('aria-checked')) === 'false';
1081
- if (isDisabled) {
1082
- await this.publicAccessToggle.focus();
1083
- await this.page.waitForTimeout(500);
1084
- await this.publicAccessToggle.press('Space');
1085
- await this.page.waitForTimeout(2000);
1086
- await (0, test_1.expect)(this.page.getByText('Public access enabled')).toBeVisible({
1087
- timeout: 60000,
1088
- });
1089
- console.log('Public access toggle enabled successfully');
1090
- }
1091
- }
1092
- async clickPublicationTab() {
1093
- await this.publicationTab.click({ timeout: 60000 });
1094
- }
1095
- async clickCopyPublicLinkButton() {
1096
- await this.copyPublicLinkButton.click({ timeout: 60000 });
1097
- }
1098
- async getPublicationLink() {
1099
- await this.clickPublicationTab();
1100
- await (0, test_1.expect)(this.copyPublicLinkButton).toBeVisible({ timeout: 60000 });
1101
- await this.clickCopyPublicLinkButton();
1102
- await (0, sleep_1.sleep)(1000);
1103
- const context = this.page.context();
1104
- await context.grantPermissions(['clipboard-read']);
1105
- const clipboardText = await this.page.evaluate(async () => {
1106
- return await navigator.clipboard.readText();
1107
- });
1108
- console.log('Captured public link:', clipboardText);
1109
- return clipboardText;
1110
- }
1111
- async embedForm(formName) {
1112
- await this.clickEmbedFormButton();
1113
- await this.clickForm(formName);
1114
- await this.clickEmbedButton();
1115
- }
1116
- async assertFormEmbedded() {
1117
- await (0, test_1.expect)(this.formLinkedSuccessMessage).toBeVisible({ timeout: 15000 });
1118
- }
1119
- async assertDiagramNameSet(diagramName) {
1120
- await (0, test_1.expect)(this.diagramNameBreadcrumb(diagramName)).toBeVisible({
1121
- timeout: 60000,
1122
- });
1123
- }
1124
- }
1125
- exports.ModelerCreatePage = ModelerCreatePage;