@camunda/e2e-test-suite 0.0.1 → 0.0.2

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 (183) hide show
  1. package/README.md +0 -2
  2. package/dist/pages/8.5/ModelerCreatePage.d.ts +1 -1
  3. package/dist/pages/8.5/ModelerCreatePage.js +15 -15
  4. package/dist/pages/8.6/ModelerCreatePage.d.ts +2 -1
  5. package/dist/pages/8.6/ModelerCreatePage.js +30 -16
  6. package/dist/pages/8.6/UtilitiesPage.d.ts +1 -3
  7. package/dist/pages/8.6/UtilitiesPage.js +5 -21
  8. package/dist/pages/8.7/ConsoleOrganizationPage.js +2 -1
  9. package/dist/pages/8.7/IdpCreatePage.d.ts +1 -1
  10. package/dist/pages/8.7/IdpCreatePage.js +16 -4
  11. package/dist/pages/8.7/ModelerCreatePage.d.ts +5 -5
  12. package/dist/pages/8.7/ModelerCreatePage.js +27 -30
  13. package/dist/pages/8.7/ModelerHomePage.d.ts +2 -0
  14. package/dist/pages/8.7/ModelerHomePage.js +26 -2
  15. package/dist/pages/8.8/ConsoleOrganizationPage.d.ts +9 -5
  16. package/dist/pages/8.8/ConsoleOrganizationPage.js +59 -16
  17. package/dist/pages/8.8/ModelerCreatePage.d.ts +5 -3
  18. package/dist/pages/8.8/ModelerCreatePage.js +35 -46
  19. package/dist/pages/8.8/OperateProcessesPage.js +1 -1
  20. package/dist/pages/8.8/UtilitiesPage.js +1 -1
  21. package/dist/pages/SM-8.5/ModelerCreatePage.js +1 -0
  22. package/dist/pages/SM-8.7/ClusterPage.js +1 -1
  23. package/dist/pages/SM-8.7/ModelerHomePage.js +1 -1
  24. package/dist/pages/SM-8.7/NavigationPage.js +1 -1
  25. package/dist/tests/8.6/connectors-user-flows.spec.js +3 -3
  26. package/dist/tests/8.6/web-modeler-user-flows.spec.js +3 -3
  27. package/dist/tests/8.7/hto-user-flows.spec.js +0 -3
  28. package/dist/tests/8.7/idp-user-flows.spec.js +1 -0
  29. package/dist/tests/8.7/web-modeler-user-flows.spec.js +2 -2
  30. package/dist/tests/8.8/aws-cluster-user-flows.spec.js +1 -1
  31. package/dist/tests/8.8/connectors-user-flows.spec.js +0 -2
  32. package/dist/tests/8.8/console-user-flows.spec.js +1 -3
  33. package/dist/tests/8.8/hto-user-flows.spec.js +4 -5
  34. package/dist/tests/8.8/rba-enabled-user-flows.spec.js +5 -3
  35. package/dist/tests/8.8/web-modeler-user-flows.spec.js +29 -39
  36. package/dist/tests/SM-8.5/mt-enabled-user-flows.spec.js +18 -0
  37. package/dist/tests/SM-8.7/mt-enabled-user-flows.spec.js +10 -3
  38. package/dist/tests/SM-8.8/optimize-user-flows.spec.js +7 -7
  39. package/package.json +1 -1
  40. package/dist/fixtures/8.4.d.ts +0 -57
  41. package/dist/fixtures/8.4.js +0 -150
  42. package/dist/fixtures/SM-8.4.d.ts +0 -55
  43. package/dist/fixtures/SM-8.4.js +0 -132
  44. package/dist/pages/8.4/AppsPage.d.ts +0 -33
  45. package/dist/pages/8.4/AppsPage.js +0 -333
  46. package/dist/pages/8.4/ClusterDetailsPage.d.ts +0 -59
  47. package/dist/pages/8.4/ClusterDetailsPage.js +0 -319
  48. package/dist/pages/8.4/ClusterPage.d.ts +0 -50
  49. package/dist/pages/8.4/ClusterPage.js +0 -334
  50. package/dist/pages/8.4/ClusterSecretsPage.d.ts +0 -21
  51. package/dist/pages/8.4/ClusterSecretsPage.js +0 -105
  52. package/dist/pages/8.4/ConnectorMarketplacePage.d.ts +0 -18
  53. package/dist/pages/8.4/ConnectorMarketplacePage.js +0 -59
  54. package/dist/pages/8.4/ConnectorSettingsPage.d.ts +0 -28
  55. package/dist/pages/8.4/ConnectorSettingsPage.js +0 -72
  56. package/dist/pages/8.4/ConnectorTemplatePage.d.ts +0 -11
  57. package/dist/pages/8.4/ConnectorTemplatePage.js +0 -34
  58. package/dist/pages/8.4/ConsoleOrganizationPage.d.ts +0 -69
  59. package/dist/pages/8.4/ConsoleOrganizationPage.js +0 -366
  60. package/dist/pages/8.4/FormJsPage.d.ts +0 -14
  61. package/dist/pages/8.4/FormJsPage.js +0 -44
  62. package/dist/pages/8.4/HomePage.d.ts +0 -27
  63. package/dist/pages/8.4/HomePage.js +0 -87
  64. package/dist/pages/8.4/LoginPage.d.ts +0 -30
  65. package/dist/pages/8.4/LoginPage.js +0 -83
  66. package/dist/pages/8.4/ModelerCreatePage.d.ts +0 -145
  67. package/dist/pages/8.4/ModelerCreatePage.js +0 -660
  68. package/dist/pages/8.4/ModelerHomePage.d.ts +0 -39
  69. package/dist/pages/8.4/ModelerHomePage.js +0 -153
  70. package/dist/pages/8.4/ModelerUserInvitePage.d.ts +0 -27
  71. package/dist/pages/8.4/ModelerUserInvitePage.js +0 -83
  72. package/dist/pages/8.4/OperateHomePage.d.ts +0 -21
  73. package/dist/pages/8.4/OperateHomePage.js +0 -53
  74. package/dist/pages/8.4/OperateProcessInstancePage.d.ts +0 -14
  75. package/dist/pages/8.4/OperateProcessInstancePage.js +0 -35
  76. package/dist/pages/8.4/OperateProcessesPage.d.ts +0 -22
  77. package/dist/pages/8.4/OperateProcessesPage.js +0 -80
  78. package/dist/pages/8.4/OptimizeCollectionsPage.d.ts +0 -15
  79. package/dist/pages/8.4/OptimizeCollectionsPage.js +0 -44
  80. package/dist/pages/8.4/OptimizeDashboardPage.d.ts +0 -8
  81. package/dist/pages/8.4/OptimizeDashboardPage.js +0 -48
  82. package/dist/pages/8.4/OptimizeHomePage.d.ts +0 -12
  83. package/dist/pages/8.4/OptimizeHomePage.js +0 -32
  84. package/dist/pages/8.4/OptimizeReportPage.d.ts +0 -49
  85. package/dist/pages/8.4/OptimizeReportPage.js +0 -160
  86. package/dist/pages/8.4/SettingsPage.d.ts +0 -10
  87. package/dist/pages/8.4/SettingsPage.js +0 -41
  88. package/dist/pages/8.4/SignUpPage.d.ts +0 -44
  89. package/dist/pages/8.4/SignUpPage.js +0 -137
  90. package/dist/pages/8.4/TaskDetailsPage.d.ts +0 -64
  91. package/dist/pages/8.4/TaskDetailsPage.js +0 -198
  92. package/dist/pages/8.4/TaskPanelPage.d.ts +0 -19
  93. package/dist/pages/8.4/TaskPanelPage.js +0 -61
  94. package/dist/pages/8.4/TaskProcessesPage.d.ts +0 -11
  95. package/dist/pages/8.4/TaskProcessesPage.js +0 -31
  96. package/dist/pages/8.4/UtilitiesPage.d.ts +0 -33
  97. package/dist/pages/8.4/UtilitiesPage.js +0 -312
  98. package/dist/pages/SM-8.4/ConnectorMarketplacePage.d.ts +0 -16
  99. package/dist/pages/SM-8.4/ConnectorMarketplacePage.js +0 -48
  100. package/dist/pages/SM-8.4/ConnectorSettingsPage.d.ts +0 -28
  101. package/dist/pages/SM-8.4/ConnectorSettingsPage.js +0 -82
  102. package/dist/pages/SM-8.4/ConsoleHomePage.d.ts +0 -7
  103. package/dist/pages/SM-8.4/ConsoleHomePage.js +0 -14
  104. package/dist/pages/SM-8.4/ConsoleOrganizationPage.d.ts +0 -22
  105. package/dist/pages/SM-8.4/ConsoleOrganizationPage.js +0 -68
  106. package/dist/pages/SM-8.4/FormJsPage.d.ts +0 -13
  107. package/dist/pages/SM-8.4/FormJsPage.js +0 -30
  108. package/dist/pages/SM-8.4/HomePage.d.ts +0 -20
  109. package/dist/pages/SM-8.4/HomePage.js +0 -49
  110. package/dist/pages/SM-8.4/IdentityPage.d.ts +0 -56
  111. package/dist/pages/SM-8.4/IdentityPage.js +0 -219
  112. package/dist/pages/SM-8.4/IdentityTenantPage.d.ts +0 -46
  113. package/dist/pages/SM-8.4/IdentityTenantPage.js +0 -173
  114. package/dist/pages/SM-8.4/IdentityUsersPage.d.ts +0 -90
  115. package/dist/pages/SM-8.4/IdentityUsersPage.js +0 -505
  116. package/dist/pages/SM-8.4/LoginPage.d.ts +0 -16
  117. package/dist/pages/SM-8.4/LoginPage.js +0 -50
  118. package/dist/pages/SM-8.4/ModelerCreatePage.d.ts +0 -142
  119. package/dist/pages/SM-8.4/ModelerCreatePage.js +0 -648
  120. package/dist/pages/SM-8.4/ModelerHomePage.d.ts +0 -35
  121. package/dist/pages/SM-8.4/ModelerHomePage.js +0 -139
  122. package/dist/pages/SM-8.4/NavigationPage.d.ts +0 -26
  123. package/dist/pages/SM-8.4/NavigationPage.js +0 -97
  124. package/dist/pages/SM-8.4/OperateHomePage.d.ts +0 -21
  125. package/dist/pages/SM-8.4/OperateHomePage.js +0 -63
  126. package/dist/pages/SM-8.4/OperateProcessInstancePage.d.ts +0 -23
  127. package/dist/pages/SM-8.4/OperateProcessInstancePage.js +0 -105
  128. package/dist/pages/SM-8.4/OperateProcessesPage.d.ts +0 -22
  129. package/dist/pages/SM-8.4/OperateProcessesPage.js +0 -90
  130. package/dist/pages/SM-8.4/OptimizeCollectionsPage.d.ts +0 -15
  131. package/dist/pages/SM-8.4/OptimizeCollectionsPage.js +0 -50
  132. package/dist/pages/SM-8.4/OptimizeDashboardPage.d.ts +0 -15
  133. package/dist/pages/SM-8.4/OptimizeDashboardPage.js +0 -59
  134. package/dist/pages/SM-8.4/OptimizeHomePage.d.ts +0 -17
  135. package/dist/pages/SM-8.4/OptimizeHomePage.js +0 -56
  136. package/dist/pages/SM-8.4/OptimizeReportPage.d.ts +0 -48
  137. package/dist/pages/SM-8.4/OptimizeReportPage.js +0 -157
  138. package/dist/pages/SM-8.4/SettingsPage.d.ts +0 -10
  139. package/dist/pages/SM-8.4/SettingsPage.js +0 -20
  140. package/dist/pages/SM-8.4/TaskDetailsPage.d.ts +0 -61
  141. package/dist/pages/SM-8.4/TaskDetailsPage.js +0 -175
  142. package/dist/pages/SM-8.4/TaskPanelPage.d.ts +0 -22
  143. package/dist/pages/SM-8.4/TaskPanelPage.js +0 -77
  144. package/dist/pages/SM-8.4/TaskProcessesPage.d.ts +0 -11
  145. package/dist/pages/SM-8.4/TaskProcessesPage.js +0 -31
  146. package/dist/pages/SM-8.4/UtilitiesPage.d.ts +0 -19
  147. package/dist/pages/SM-8.4/UtilitiesPage.js +0 -175
  148. package/dist/tests/8.4/connectors-user-flows.spec.d.ts +0 -1
  149. package/dist/tests/8.4/connectors-user-flows.spec.js +0 -407
  150. package/dist/tests/8.4/console-user-flows.spec.d.ts +0 -1
  151. package/dist/tests/8.4/console-user-flows.spec.js +0 -192
  152. package/dist/tests/8.4/hto-user-flows.spec.d.ts +0 -1
  153. package/dist/tests/8.4/hto-user-flows.spec.js +0 -186
  154. package/dist/tests/8.4/login.spec.d.ts +0 -1
  155. package/dist/tests/8.4/login.spec.js +0 -27
  156. package/dist/tests/8.4/navigation.spec.d.ts +0 -1
  157. package/dist/tests/8.4/navigation.spec.js +0 -62
  158. package/dist/tests/8.4/optimize-user-flows.spec.d.ts +0 -1
  159. package/dist/tests/8.4/optimize-user-flows.spec.js +0 -266
  160. package/dist/tests/8.4/rba-enabled-user-flows.spec.d.ts +0 -1
  161. package/dist/tests/8.4/rba-enabled-user-flows.spec.js +0 -306
  162. package/dist/tests/8.4/smoke-tests.spec.d.ts +0 -1
  163. package/dist/tests/8.4/smoke-tests.spec.js +0 -174
  164. package/dist/tests/8.4/test-setup.spec.d.ts +0 -1
  165. package/dist/tests/8.4/test-setup.spec.js +0 -61
  166. package/dist/tests/8.4/web-modeler-user-flows.spec.d.ts +0 -1
  167. package/dist/tests/8.4/web-modeler-user-flows.spec.js +0 -611
  168. package/dist/tests/SM-8.4/connectors-user-flows.spec.d.ts +0 -1
  169. package/dist/tests/SM-8.4/connectors-user-flows.spec.js +0 -224
  170. package/dist/tests/SM-8.4/hto-user-flows.spec.d.ts +0 -1
  171. package/dist/tests/SM-8.4/hto-user-flows.spec.js +0 -308
  172. package/dist/tests/SM-8.4/mt-enabled-user-flows.spec.d.ts +0 -1
  173. package/dist/tests/SM-8.4/mt-enabled-user-flows.spec.js +0 -537
  174. package/dist/tests/SM-8.4/optimize-user-flows.spec.d.ts +0 -1
  175. package/dist/tests/SM-8.4/optimize-user-flows.spec.js +0 -182
  176. package/dist/tests/SM-8.4/rba-enabled-user-flows.spec.d.ts +0 -1
  177. package/dist/tests/SM-8.4/rba-enabled-user-flows.spec.js +0 -250
  178. package/dist/tests/SM-8.4/smoke-tests.spec.d.ts +0 -1
  179. package/dist/tests/SM-8.4/smoke-tests.spec.js +0 -148
  180. package/dist/tests/SM-8.4/test-setup.spec.d.ts +0 -1
  181. package/dist/tests/SM-8.4/test-setup.spec.js +0 -105
  182. package/dist/tests/SM-8.4/web-modeler-user-flows.spec.d.ts +0 -1
  183. package/dist/tests/SM-8.4/web-modeler-user-flows.spec.js +0 -125
package/README.md CHANGED
@@ -18,7 +18,6 @@ This test suite supports testing across three primary platforms:
18
18
 
19
19
  For the Camunda SaaS offering, the test suite supports following cluster versions:
20
20
 
21
- - 8.4.X
22
21
  - 8.5.X
23
22
  - 8.6.X
24
23
  - 8.7.X
@@ -30,7 +29,6 @@ For the Camunda SaaS offering, the test suite supports following cluster version
30
29
 
31
30
  For the Camunda SM Helm offering, the test suite supports following versions:
32
31
 
33
- - 8.4.X
34
32
  - 8.5.X
35
33
  - 8.6.X
36
34
  - 8.7.X
@@ -69,7 +69,7 @@ declare class ModelerCreatePage {
69
69
  readonly formLinkingTypeDropdown: Locator;
70
70
  readonly formLinkTypeOptions: Locator;
71
71
  readonly addFormJsonConfigurationInput: Locator;
72
- private startInstanceDialog;
72
+ private deployAndRunDialog;
73
73
  private deployDiagramDialog;
74
74
  readonly timerEventOption: Locator;
75
75
  readonly timerEventSettings: Locator;
@@ -73,7 +73,7 @@ class ModelerCreatePage {
73
73
  formLinkingTypeDropdown;
74
74
  formLinkTypeOptions;
75
75
  addFormJsonConfigurationInput;
76
- startInstanceDialog;
76
+ deployAndRunDialog;
77
77
  deployDiagramDialog;
78
78
  timerEventOption;
79
79
  timerEventSettings;
@@ -95,11 +95,14 @@ class ModelerCreatePage {
95
95
  .locator('span')
96
96
  .first();
97
97
  this.appendEndEventButton = page.getByTitle('Append end event');
98
- this.startInstanceMainButton = page
99
- .getByTitle('Deploys the current process (if not already deployed) and starts a new instance')
100
- .first();
101
- this.startInstanceSubButton = page
102
- .getByRole('button', { name: 'Run' })
98
+ this.deployAndRunDialog = page.getByRole('dialog', {
99
+ name: 'Deploy & run diagram',
100
+ });
101
+ this.startInstanceMainButton = page.getByRole('button', {
102
+ name: 'Deploy & run',
103
+ });
104
+ this.startInstanceSubButton = this.deployAndRunDialog
105
+ .getByRole('button', { name: 'Deploy & run' })
103
106
  .last();
104
107
  this.viewProcessInstanceLink = page.getByRole('link', {
105
108
  name: 'View process instance',
@@ -190,9 +193,6 @@ class ModelerCreatePage {
190
193
  this.formLinkingTypeDropdown = page.getByLabel('Type');
191
194
  this.formLinkTypeOptions = page.locator('#bio-properties-panel-formType');
192
195
  this.addFormJsonConfigurationInput = page.getByLabel('Form JSON configuration');
193
- this.startInstanceDialog = page.getByRole('dialog', {
194
- name: 'Start instance',
195
- });
196
196
  this.deployDiagramDialog = page.getByRole('dialog', {
197
197
  name: 'Deploy diagram',
198
198
  });
@@ -477,16 +477,16 @@ class ModelerCreatePage {
477
477
  timeout: 60000,
478
478
  });
479
479
  await this.clickStartInstanceMainButton();
480
- await (0, test_1.expect)(this.startInstanceDialog).toBeVisible({
480
+ await (0, test_1.expect)(this.deployAndRunDialog).toBeVisible({
481
481
  timeout: 30000,
482
482
  });
483
483
  //Select the correct cluster if multiple exist
484
- const cluster = this.startInstanceDialog.getByText(clusterName);
484
+ const cluster = this.deployAndRunDialog.getByText(clusterName);
485
485
  await (0, test_1.expect)(cluster).toBeVisible({
486
486
  timeout: 30000,
487
487
  });
488
488
  await cluster.click();
489
- await (0, test_1.expect)(this.startInstanceDialog
489
+ await (0, test_1.expect)(this.deployAndRunDialog
490
490
  .locator('label')
491
491
  .filter({
492
492
  hasText: clusterName,
@@ -494,7 +494,7 @@ class ModelerCreatePage {
494
494
  .getByRole('checkbox')).toBeChecked({ timeout: 30000 });
495
495
  //Check healthy status of the selected cluster
496
496
  const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
497
- await (0, test_1.expect)(this.startInstanceDialog).toHaveText(regex, {
497
+ await (0, test_1.expect)(this.deployAndRunDialog).toHaveText(regex, {
498
498
  timeout: 120000,
499
499
  });
500
500
  if (variables.length > 0) {
@@ -519,12 +519,12 @@ class ModelerCreatePage {
519
519
  }
520
520
  }
521
521
  if (textToVisible.length > 0) {
522
- await (0, test_1.expect)(this.startInstanceDialog.getByText(textToVisible)).toBeVisible({
522
+ await (0, test_1.expect)(this.deployAndRunDialog.getByText(textToVisible)).toBeVisible({
523
523
  timeout: 30000,
524
524
  });
525
525
  }
526
526
  if (textNotToVisible.length > 0) {
527
- await (0, test_1.expect)(this.startInstanceDialog.getByText(textNotToVisible)).not.toBeVisible({
527
+ await (0, test_1.expect)(this.deployAndRunDialog.getByText(textNotToVisible)).not.toBeVisible({
528
528
  timeout: 60000,
529
529
  });
530
530
  }
@@ -74,13 +74,14 @@ declare class ModelerCreatePage {
74
74
  readonly jobTypeInput: Locator;
75
75
  readonly playTab: Locator;
76
76
  readonly continueToPlayButton: Locator;
77
- private startInstanceDialog;
77
+ private deployAndRunDialog;
78
78
  private deployDiagramDialog;
79
79
  readonly timerEventOption: Locator;
80
80
  readonly timerEventSettings: Locator;
81
81
  readonly timerType: Locator;
82
82
  readonly timerValue: Locator;
83
83
  readonly eighthPlacedElement: Locator;
84
+ readonly processIdSecondLocator: Locator;
84
85
  constructor(page: Page);
85
86
  modelJobWorkerDiagram(processName: string, embedFrom?: boolean): Promise<void>;
86
87
  modelCamundaUserTaskDiagram(processName: string, processId?: string, formName?: string): Promise<void>;
@@ -78,13 +78,14 @@ class ModelerCreatePage {
78
78
  jobTypeInput;
79
79
  playTab;
80
80
  continueToPlayButton;
81
- startInstanceDialog;
81
+ deployAndRunDialog;
82
82
  deployDiagramDialog;
83
83
  timerEventOption;
84
84
  timerEventSettings;
85
85
  timerType;
86
86
  timerValue;
87
87
  eighthPlacedElement;
88
+ processIdSecondLocator;
88
89
  constructor(page) {
89
90
  this.page = page;
90
91
  this.generalPanel = page.locator('[data-group-id="group-general"]');
@@ -102,9 +103,14 @@ class ModelerCreatePage {
102
103
  .first();
103
104
  this.parallelGatewayOption = page.getByText('parallel gateway');
104
105
  this.appendEndEventButton = page.getByTitle('Append end event');
105
- this.startInstanceMainButton = page.getByRole('button', { name: 'Run' });
106
- this.startInstanceSubButton = page
107
- .getByRole('button', { name: 'Run' })
106
+ this.deployAndRunDialog = page.getByRole('dialog', {
107
+ name: 'Deploy & run diagram',
108
+ });
109
+ this.startInstanceMainButton = page.getByRole('button', {
110
+ name: 'Deploy & run',
111
+ });
112
+ this.startInstanceSubButton = this.deployAndRunDialog
113
+ .getByRole('button', { name: 'Deploy & run' })
108
114
  .last();
109
115
  this.viewProcessInstanceLink = page.getByRole('link', {
110
116
  name: 'View process instance',
@@ -213,9 +219,6 @@ class ModelerCreatePage {
213
219
  this.candidateGroupsInput = page.getByRole('textbox', {
214
220
  name: 'candidate groups',
215
221
  });
216
- this.startInstanceDialog = page.getByRole('dialog', {
217
- name: 'Start instance',
218
- });
219
222
  this.deployDiagramDialog = page.getByRole('dialog', {
220
223
  name: 'Deploy diagram',
221
224
  });
@@ -229,6 +232,7 @@ class ModelerCreatePage {
229
232
  this.eighthPlacedElement = page
230
233
  .locator('g:nth-child(8) > .djs-element > .djs-hit')
231
234
  .first();
235
+ this.processIdSecondLocator = page.getByLabel('Process ID');
232
236
  }
233
237
  async modelJobWorkerDiagram(processName, embedFrom = false) {
234
238
  await (0, test_1.expect)(this.generalPanel).toBeVisible({
@@ -320,10 +324,20 @@ class ModelerCreatePage {
320
324
  }
321
325
  }
322
326
  async clickIdInput() {
323
- await this.idInput.click({ timeout: 60000 });
327
+ try {
328
+ await this.idInput.click();
329
+ }
330
+ catch {
331
+ await this.processIdSecondLocator.click();
332
+ }
324
333
  }
325
334
  async fillIdInput(id) {
326
- await this.idInput.fill(id, { timeout: 60000 });
335
+ try {
336
+ await this.idInput.fill(id);
337
+ }
338
+ catch {
339
+ await this.processIdSecondLocator.fill(id);
340
+ }
327
341
  }
328
342
  async clickPriorityInput() {
329
343
  try {
@@ -356,7 +370,7 @@ class ModelerCreatePage {
356
370
  .filter({
357
371
  hasText: clusterName,
358
372
  })
359
- .getByRole('checkbox')).toBeChecked({ timeout: 30000 });
373
+ .getByRole('switch')).toBeChecked({ timeout: 30000 });
360
374
  //Check healthy status of the selected cluster
361
375
  const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
362
376
  await (0, test_1.expect)(this.deployDiagramDialog).toHaveText(regex, {
@@ -386,24 +400,24 @@ class ModelerCreatePage {
386
400
  timeout: 60000,
387
401
  });
388
402
  await this.clickStartInstanceMainButton();
389
- await (0, test_1.expect)(this.startInstanceDialog).toBeVisible({
403
+ await (0, test_1.expect)(this.deployAndRunDialog).toBeVisible({
390
404
  timeout: 30000,
391
405
  });
392
406
  //Select the correct cluster if multiple exist
393
- const cluster = this.startInstanceDialog.getByText(clusterName);
407
+ const cluster = this.deployAndRunDialog.getByText(clusterName);
394
408
  await (0, test_1.expect)(cluster).toBeVisible({
395
409
  timeout: 30000,
396
410
  });
397
411
  await cluster.click();
398
- await (0, test_1.expect)(this.startInstanceDialog
412
+ await (0, test_1.expect)(this.deployAndRunDialog
399
413
  .locator('label')
400
414
  .filter({
401
415
  hasText: clusterName,
402
416
  })
403
- .getByRole('checkbox')).toBeChecked({ timeout: 30000 });
417
+ .getByRole('switch')).toBeChecked({ timeout: 30000 });
404
418
  //Check healthy status of the selected cluster
405
419
  const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
406
- await (0, test_1.expect)(this.startInstanceDialog).toHaveText(regex, {
420
+ await (0, test_1.expect)(this.deployAndRunDialog).toHaveText(regex, {
407
421
  timeout: 120000,
408
422
  });
409
423
  if (variables.length > 0) {
@@ -428,7 +442,7 @@ class ModelerCreatePage {
428
442
  }
429
443
  }
430
444
  if (textToVisible.length > 0) {
431
- await (0, test_1.expect)(this.startInstanceDialog.getByText(textToVisible)).toBeVisible({
445
+ await (0, test_1.expect)(this.deployAndRunDialog.getByText(textToVisible)).toBeVisible({
432
446
  timeout: 30000,
433
447
  });
434
448
  }
@@ -13,8 +13,6 @@ import { OperateProcessesPage } from './OperateProcessesPage';
13
13
  import { OperateProcessInstancePage } from './OperateProcessInstancePage';
14
14
  import { ConnectorSettingsPage } from './ConnectorSettingsPage';
15
15
  import { LoginPage } from './LoginPage';
16
- import { ConnectorMarketplacePage } from './ConnectorMarketplacePage';
17
- import { ConnectorTemplatePage } from './ConnectorTemplatePage';
18
16
  export declare function loginWithRetry(page: Page, loginPage: LoginPage, timeout: number, maxRetries?: number): Promise<void>;
19
17
  export declare function modelRestConnector(modelerCreatePage: ModelerCreatePage, connectorSettingsPage: ConnectorSettingsPage, processName: string, url: string, auth: string, resultExpression: string, resultVariable?: string, basicAuthCredentials?: {
20
18
  username: string;
@@ -30,4 +28,4 @@ export declare function enableRBA(clusterName: string, homePage: HomePage, clust
30
28
  export declare function clickInvitationLinkInEmail(page: Page, id: string, mailSlurp: MailSlurp): Promise<void>;
31
29
  export declare function assertTestUsesCorrectOrganization(page: Page): Promise<void>;
32
30
  export declare function deleteAllUserGroups(homePage: HomePage, organizationPage: ConsoleOrganizationPage, appsPage: AppsPage): Promise<void>;
33
- export declare function modelAndRunConnectorsTimerEventDiagram(modelerCreatePage: ModelerCreatePage, modelerHomePage: ModelerHomePage, processName: string, page: Page, connectorMarketplacePage: ConnectorMarketplacePage, clusterName: string, connectorTemplatePage: ConnectorTemplatePage): Promise<void>;
31
+ export declare function modelAndRunConnectorsTimerEventDiagram(modelerCreatePage: ModelerCreatePage, modelerHomePage: ModelerHomePage, processName: string, page: Page, clusterName: string): Promise<void>;
@@ -275,7 +275,7 @@ async function deleteAllUserGroups(homePage, organizationPage, appsPage) {
275
275
  await organizationPage.deleteAllGroups();
276
276
  }
277
277
  exports.deleteAllUserGroups = deleteAllUserGroups;
278
- async function modelAndRunConnectorsTimerEventDiagram(modelerCreatePage, modelerHomePage, processName, page, connectorMarketplacePage, clusterName, connectorTemplatePage) {
278
+ async function modelAndRunConnectorsTimerEventDiagram(modelerCreatePage, modelerHomePage, processName, page, clusterName) {
279
279
  await modelerHomePage.clickCrossComponentProjectFolder();
280
280
  await modelerHomePage.clickDiagramTypeDropdown();
281
281
  await modelerHomePage.clickUploadFilesButton();
@@ -284,26 +284,10 @@ async function modelAndRunConnectorsTimerEventDiagram(modelerCreatePage, modeler
284
284
  await modelerCreatePage.clickDiagramBreadcrumb();
285
285
  await modelerCreatePage.clickEditDiagramNameButton();
286
286
  await modelerCreatePage.enterDiagramName(processName);
287
- await modelerCreatePage.clickEighthPlacedElement();
288
- await modelerCreatePage.clickChangeTypeButton();
289
- await (0, test_1.expect)(modelerCreatePage.marketPlaceButton).toBeVisible({
290
- timeout: 120000,
291
- });
292
- await modelerCreatePage.clickMarketPlaceButton();
293
- await connectorMarketplacePage.clickSearchForConnectorTextbox();
294
- await connectorMarketplacePage.fillSearchForConnectorTextbox('REST Connector');
295
- await (0, sleep_1.sleep)(10000);
296
- await (0, test_1.expect)(page.getByText('REST ConnectorBy CamundaConnect, interact, and synchronize processes')).toBeVisible({
297
- timeout: 60000,
298
- });
299
- await connectorMarketplacePage.downloadConnectorToProject();
300
- await modelerHomePage.clickProjectBreadcrumb();
301
- await modelerHomePage.clickProcessDiagram('REST Outbound Connector');
302
- await connectorTemplatePage.publishConnector();
303
- await modelerHomePage.clickProjectBreadcrumb();
304
- await modelerHomePage.clickProcessDiagram(processName);
305
- await (0, sleep_1.sleep)(5000);
306
- await page.reload();
287
+ await modelerCreatePage.clickStartEventElement();
288
+ await modelerCreatePage.clickGeneralPropertiesPanel();
289
+ await modelerCreatePage.clickIdInput();
290
+ await modelerCreatePage.fillIdInput(processName);
307
291
  await (0, sleep_1.sleep)(5000);
308
292
  await modelerCreatePage.runProcessInstance(clusterName);
309
293
  }
@@ -394,7 +394,8 @@ class ConsoleOrganizationPage {
394
394
  }
395
395
  async fillAssignMembers(names) {
396
396
  for (const name of names) {
397
- await this.assignMembersSearchbox.click({ timeout: 60000 });
397
+ await this.assignMembersSearchbox.click({ timeout: 90000 });
398
+ await (0, sleep_1.sleep)(1000);
398
399
  await this.assignMembersSearchbox.fill(name);
399
400
  await this.assignMembersSearchResult
400
401
  .filter({ hasText: name })
@@ -37,7 +37,7 @@ declare class IdpCreatePage {
37
37
  clickSaveAsTestCaseButton(): Promise<void>;
38
38
  clickValidateExtractionTab(): Promise<void>;
39
39
  clickExpandAllRowsButton(): Promise<void>;
40
- assertPassTestCaseResultsRow(): Promise<void>;
40
+ assertPassTestCaseResultsRow(retries?: number): Promise<void>;
41
41
  clickPublishButton(): Promise<void>;
42
42
  clickPublishToProjecOption(): Promise<void>;
43
43
  fillVersionFieldName(name: string): Promise<void>;
@@ -130,10 +130,22 @@ class IdpCreatePage {
130
130
  await this.expandAllRowsButton.click({ timeout: 60000 });
131
131
  await (0, sleep_1.sleep)(1000);
132
132
  }
133
- async assertPassTestCaseResultsRow() {
134
- await (0, test_1.expect)(this.passTestCaseResultsRows).toBeVisible({
135
- timeout: 120000,
136
- });
133
+ async assertPassTestCaseResultsRow(retries = 3) {
134
+ for (let i = 0; i < retries; i++) {
135
+ try {
136
+ await (0, test_1.expect)(this.passTestCaseResultsRows).toBeVisible({
137
+ timeout: 60000,
138
+ });
139
+ return; // Click succeeded, exit the loop
140
+ }
141
+ catch (error) {
142
+ console.error(`Attempt ${i + 1} to assert pass test case failed: ${error}`);
143
+ await this.page.reload();
144
+ await this.clickValidateExtractionTab();
145
+ await this.clickExpandAllRowsButton();
146
+ }
147
+ }
148
+ throw new Error(`Failed to assert pass test case after ${retries} retries`);
137
149
  }
138
150
  async clickPublishButton() {
139
151
  await this.publishButton.click({ timeout: 60000 });
@@ -2,7 +2,6 @@ import { Page, Locator } from '@playwright/test';
2
2
  declare class ModelerCreatePage {
3
3
  private page;
4
4
  readonly generalPanel: Locator;
5
- private startInstanceDialog;
6
5
  private deployDiagramDialog;
7
6
  readonly processIdInput: Locator;
8
7
  readonly startEventElement: Locator;
@@ -10,8 +9,6 @@ declare class ModelerCreatePage {
10
9
  readonly changeTypeButton: Locator;
11
10
  readonly userTaskOption: Locator;
12
11
  readonly appendEndEventButton: Locator;
13
- readonly startInstanceMainButton: Locator;
14
- readonly startInstanceSubButton: Locator;
15
12
  readonly viewProcessInstanceLink: Locator;
16
13
  readonly nameInput: Locator;
17
14
  readonly diagramBreadcrumb: Locator;
@@ -89,6 +86,9 @@ declare class ModelerCreatePage {
89
86
  readonly timerType: Locator;
90
87
  readonly timerValue: Locator;
91
88
  readonly eighthPlacedElement: Locator;
89
+ readonly deployAndRunMainButton: Locator;
90
+ readonly deployAndRunSubButton: Locator;
91
+ readonly dialog: Locator;
92
92
  constructor(page: Page);
93
93
  modelJobWorkerDiagram(processName: string, embedFrom?: boolean): Promise<void>;
94
94
  modelCamundaUserTaskDiagram(processName: string, processId?: string, formName?: string): Promise<void>;
@@ -112,12 +112,12 @@ declare class ModelerCreatePage {
112
112
  clickAppendEndEventButton(parentElement?: string): Promise<void>;
113
113
  clickCloseButton(): Promise<void>;
114
114
  deployDiagram(clusterName: string, rbaEnabled: boolean): Promise<void>;
115
- clickStartInstanceMainButton(): Promise<void>;
115
+ clickDeployAndRunMainButton(): Promise<void>;
116
+ clickDeployAndRunSubButton(): Promise<void>;
116
117
  runProcessInstance(clusterName: string, variables?: string, formVariables?: {
117
118
  [key: string]: string;
118
119
  }, textToVisible?: string): Promise<void>;
119
120
  retryRunProcess(maxRetries?: number): Promise<void>;
120
- clickStartInstanceSubButton(): Promise<void>;
121
121
  clickViewProcessInstanceLink(): Promise<void>;
122
122
  clickNameInput(): Promise<void>;
123
123
  fillNamedInput(name: string): Promise<void>;
@@ -6,7 +6,6 @@ const sleep_1 = require("../../utils/sleep");
6
6
  class ModelerCreatePage {
7
7
  page;
8
8
  generalPanel;
9
- startInstanceDialog;
10
9
  deployDiagramDialog;
11
10
  processIdInput;
12
11
  startEventElement;
@@ -14,8 +13,6 @@ class ModelerCreatePage {
14
13
  changeTypeButton;
15
14
  userTaskOption;
16
15
  appendEndEventButton;
17
- startInstanceMainButton;
18
- startInstanceSubButton;
19
16
  viewProcessInstanceLink;
20
17
  nameInput;
21
18
  diagramBreadcrumb;
@@ -93,6 +90,9 @@ class ModelerCreatePage {
93
90
  timerType;
94
91
  timerValue;
95
92
  eighthPlacedElement;
93
+ deployAndRunMainButton;
94
+ deployAndRunSubButton;
95
+ dialog;
96
96
  constructor(page) {
97
97
  this.page = page;
98
98
  this.generalPanel = page.locator('[data-group-id="group-general"]');
@@ -111,16 +111,19 @@ class ModelerCreatePage {
111
111
  .locator('span')
112
112
  .first();
113
113
  this.appendEndEventButton = page.getByTitle('Append end event');
114
- this.startInstanceMainButton = page.getByRole('button', { name: 'Run' });
115
- this.startInstanceSubButton = page
116
- .getByRole('button', { name: 'Run' })
117
- .last();
114
+ this.dialog = page.getByRole('dialog');
115
+ this.deployAndRunMainButton = page.getByRole('button', {
116
+ name: 'Deploy & run',
117
+ exact: true,
118
+ });
119
+ this.deployAndRunSubButton = this.dialog.getByRole('button', {
120
+ name: 'Deploy & run',
121
+ exact: true,
122
+ });
118
123
  this.viewProcessInstanceLink = page.getByRole('link', {
119
124
  name: 'View process instance',
120
125
  });
121
- this.viewProcessLink = page.getByRole('link', {
122
- name: 'View process in Operate',
123
- });
126
+ this.viewProcessLink = page.getByText('view process in Operate');
124
127
  this.nameInput = page.getByLabel('Name', { exact: true });
125
128
  this.diagramBreadcrumb = page.locator('[data-test="breadcrumb-diagram"]');
126
129
  this.editDiagramNameButton = page.getByText('Edit name');
@@ -187,9 +190,6 @@ class ModelerCreatePage {
187
190
  this.rbaEnabledDeployedDialog = page.getByRole('dialog', {
188
191
  name: 'Process successfully deployed.',
189
192
  });
190
- this.startInstanceDialog = page.getByRole('dialog', {
191
- name: 'Start instance',
192
- });
193
193
  this.deployDiagramDialog = page.getByRole('dialog', {
194
194
  name: 'Deploy diagram',
195
195
  });
@@ -398,7 +398,7 @@ class ModelerCreatePage {
398
398
  .filter({
399
399
  hasText: clusterName,
400
400
  })
401
- .getByRole('checkbox')).toBeChecked({ timeout: 30000 });
401
+ .getByRole('switch')).toBeChecked({ timeout: 30000 });
402
402
  //Check healthy status of the selected cluster
403
403
  const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
404
404
  await (0, test_1.expect)(this.deployDiagramDialog).toHaveText(regex, {
@@ -423,32 +423,32 @@ class ModelerCreatePage {
423
423
  });
424
424
  }
425
425
  }
426
- async clickStartInstanceMainButton() {
427
- await this.startInstanceMainButton.click({ timeout: 90000 });
426
+ async clickDeployAndRunMainButton() {
427
+ await this.deployAndRunMainButton.click({ timeout: 30000 });
428
+ }
429
+ async clickDeployAndRunSubButton() {
430
+ await this.deployAndRunSubButton.click({ timeout: 30000 });
428
431
  }
429
432
  async runProcessInstance(clusterName, variables = '', formVariables = {}, textToVisible = '') {
430
- await (0, test_1.expect)(this.startInstanceMainButton).toBeVisible({
431
- timeout: 60000,
432
- });
433
- await this.clickStartInstanceMainButton();
434
- await (0, test_1.expect)(this.startInstanceDialog).toBeVisible({
433
+ await this.clickDeployAndRunMainButton();
434
+ await (0, test_1.expect)(this.dialog).toBeVisible({
435
435
  timeout: 30000,
436
436
  });
437
437
  //Select the correct cluster if multiple exist
438
- const cluster = this.startInstanceDialog.getByText(clusterName);
438
+ const cluster = this.dialog.getByText(clusterName);
439
439
  await (0, test_1.expect)(cluster).toBeVisible({
440
440
  timeout: 30000,
441
441
  });
442
442
  await cluster.click();
443
- await (0, test_1.expect)(this.startInstanceDialog
443
+ await (0, test_1.expect)(this.dialog
444
444
  .locator('label')
445
445
  .filter({
446
446
  hasText: clusterName,
447
447
  })
448
- .getByRole('checkbox')).toBeChecked({ timeout: 30000 });
448
+ .getByRole('switch')).toBeChecked({ timeout: 30000 });
449
449
  //Check healthy status of the selected cluster
450
450
  const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
451
- await (0, test_1.expect)(this.startInstanceDialog).toHaveText(regex, {
451
+ await (0, test_1.expect)(this.dialog).toHaveText(regex, {
452
452
  timeout: 120000,
453
453
  });
454
454
  if (variables.length > 0) {
@@ -473,7 +473,7 @@ class ModelerCreatePage {
473
473
  }
474
474
  }
475
475
  if (textToVisible.length > 0) {
476
- await (0, test_1.expect)(this.startInstanceDialog.getByText(textToVisible)).toBeVisible({
476
+ await (0, test_1.expect)(this.dialog.getByText(textToVisible)).toBeVisible({
477
477
  timeout: 30000,
478
478
  });
479
479
  }
@@ -482,7 +482,7 @@ class ModelerCreatePage {
482
482
  async retryRunProcess(maxRetries = 3) {
483
483
  for (let attempt = 0; attempt < maxRetries; attempt++) {
484
484
  try {
485
- await this.clickStartInstanceSubButton();
485
+ await this.clickDeployAndRunSubButton();
486
486
  await (0, test_1.expect)(this.viewProcessInstanceLink).toBeVisible({
487
487
  timeout: 30000,
488
488
  });
@@ -499,9 +499,6 @@ class ModelerCreatePage {
499
499
  }
500
500
  }
501
501
  }
502
- async clickStartInstanceSubButton() {
503
- await this.startInstanceSubButton.click({ timeout: 90000 });
504
- }
505
502
  async clickViewProcessInstanceLink() {
506
503
  await this.viewProcessInstanceLink.click({ timeout: 180000 });
507
504
  }
@@ -20,10 +20,12 @@ declare class ModelerHomePage {
20
20
  readonly homeBreadcrumb: Locator;
21
21
  readonly rows: Locator;
22
22
  readonly uploadFilesButton: Locator;
23
+ readonly dialog: Locator;
23
24
  constructor(page: Page);
24
25
  clickCreateNewProjectButton(): Promise<void>;
25
26
  enterNewProjectName(name: string): Promise<void>;
26
27
  enterIdpApplicationName(name: string): Promise<void>;
28
+ selectCluster(clusterName: string): Promise<void>;
27
29
  createForm(formName: string): Promise<void>;
28
30
  clickCreateIdpApplicationButton(): Promise<void>;
29
31
  clickChooseBpmnTemplateButton(): Promise<void>;
@@ -24,6 +24,7 @@ class ModelerHomePage {
24
24
  homeBreadcrumb;
25
25
  rows;
26
26
  uploadFilesButton;
27
+ dialog;
27
28
  constructor(page) {
28
29
  this.page = page;
29
30
  this.modelerPageBanner = page.getByRole('banner', {
@@ -61,6 +62,7 @@ class ModelerHomePage {
61
62
  });
62
63
  this.rows = page.getByRole('row');
63
64
  this.uploadFilesButton = page.getByRole('menuitem', { name: 'Upload files' });
65
+ this.dialog = page.getByRole('dialog');
64
66
  }
65
67
  async clickCreateNewProjectButton() {
66
68
  await this.createNewProjectButton.click({ timeout: 90000 });
@@ -74,6 +76,25 @@ class ModelerHomePage {
74
76
  await this.idpApplicationNameInput.click({ timeout: 60000 });
75
77
  await this.idpApplicationNameInput.fill(name);
76
78
  }
79
+ async selectCluster(clusterName) {
80
+ //Select the correct cluster if multiple exist
81
+ const cluster = this.dialog.getByText(clusterName);
82
+ await (0, test_1.expect)(cluster).toBeVisible({
83
+ timeout: 30000,
84
+ });
85
+ await cluster.click();
86
+ await (0, test_1.expect)(this.dialog
87
+ .locator('label')
88
+ .filter({
89
+ hasText: clusterName,
90
+ })
91
+ .getByRole('checkbox')).toBeChecked({ timeout: 30000 });
92
+ //Check healthy status of the selected cluster
93
+ const regex = new RegExp(`${clusterName}.*?HealthydevManage`);
94
+ await (0, test_1.expect)(this.dialog).toHaveText(regex, {
95
+ timeout: 120000,
96
+ });
97
+ }
77
98
  async createForm(formName) {
78
99
  await this.clickDiagramTypeDropdown();
79
100
  await this.clickFormOption();
@@ -134,8 +155,11 @@ class ModelerHomePage {
134
155
  }
135
156
  }
136
157
  async clickOpenOrganizationsButton() {
137
- await this.page.waitForLoadState();
138
- await this.openOrganizationsButton.click({ timeout: 60000 });
158
+ await (0, sleep_1.sleep)(5000);
159
+ await (0, test_1.expect)(this.openOrganizationsButton).toBeVisible({
160
+ timeout: 10000,
161
+ });
162
+ await this.openOrganizationsButton.click({ timeout: 30000 });
139
163
  }
140
164
  async clickCrossComponentProjectFolder() {
141
165
  let attempts = 0;
@@ -4,8 +4,8 @@ declare class ConsoleOrganizationPage {
4
4
  readonly usersTab: Locator;
5
5
  readonly optionsButton: Locator;
6
6
  readonly editUserMenuItem: Locator;
7
- readonly operationsEngineerCheckbox: Locator;
8
- readonly developerCheckbox: Locator;
7
+ readonly modelerCheckbox: Locator;
8
+ readonly adminCheckbox: Locator;
9
9
  readonly analystCheckbox: Locator;
10
10
  readonly confirmButton: Locator;
11
11
  readonly settingsTab: Locator;
@@ -55,13 +55,17 @@ declare class ConsoleOrganizationPage {
55
55
  checkReadPermissionCheckbox(): Promise<void>;
56
56
  checkStartInstancePermissionCheckbox(): Promise<void>;
57
57
  clickUsersTab(): Promise<void>;
58
+ selectAnalystRole(username?: string): Promise<void>;
59
+ selectModelerRole(username?: string): Promise<void>;
60
+ selectAdminRole(username?: string): Promise<void>;
58
61
  clickOptionsButton(): Promise<void>;
59
62
  clickEditUserMenuItem(): Promise<void>;
60
- clickOperationsEngineerCheckbox(): Promise<void>;
61
- checkDeveloperCheckbox(): Promise<void>;
62
- uncheckDeveloperCheckbox(): Promise<void>;
63
+ checkModelerCheckbox(): Promise<void>;
64
+ checkAdminCheckbox(): Promise<void>;
63
65
  checkAnalystCheckbox(): Promise<void>;
64
66
  uncheckAnalystCheckbox(): Promise<void>;
67
+ uncheckModelerCheckbox(): Promise<void>;
68
+ uncheckAdminCheckbox(): Promise<void>;
65
69
  clickConfirmButton(): Promise<void>;
66
70
  clickSettingsTab(): Promise<void>;
67
71
  clickOptInButton(): Promise<void>;