@camunda/e2e-test-suite 0.0.713 → 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 (203) hide show
  1. package/.github/c8_versions.json +0 -3
  2. package/README.md +0 -6
  3. package/dist/pages/8.8/ClusterDetailsPage.js +5 -2
  4. package/dist/pages/8.8/ModelerCreatePage.js +10 -14
  5. package/dist/utils/clusterVersions.d.ts +0 -1
  6. package/dist/utils/clusterVersions.js +0 -1
  7. package/package.json +1 -1
  8. package/dist/fixtures/8.6.d.ts +0 -63
  9. package/dist/fixtures/8.6.js +0 -162
  10. package/dist/fixtures/SM-8.6.d.ts +0 -63
  11. package/dist/fixtures/SM-8.6.js +0 -149
  12. package/dist/fixtures/c8Run-8.6.d.ts +0 -20
  13. package/dist/fixtures/c8Run-8.6.js +0 -56
  14. package/dist/pages/8.6/AppsPage.d.ts +0 -33
  15. package/dist/pages/8.6/AppsPage.js +0 -337
  16. package/dist/pages/8.6/ClientCredentialsDetailsPage.d.ts +0 -12
  17. package/dist/pages/8.6/ClientCredentialsDetailsPage.js +0 -36
  18. package/dist/pages/8.6/ClusterDetailsPage.d.ts +0 -75
  19. package/dist/pages/8.6/ClusterDetailsPage.js +0 -443
  20. package/dist/pages/8.6/ClusterPage.d.ts +0 -59
  21. package/dist/pages/8.6/ClusterPage.js +0 -320
  22. package/dist/pages/8.6/ClusterSecretsPage.d.ts +0 -28
  23. package/dist/pages/8.6/ClusterSecretsPage.js +0 -134
  24. package/dist/pages/8.6/ConnectorMarketplacePage.d.ts +0 -19
  25. package/dist/pages/8.6/ConnectorMarketplacePage.js +0 -60
  26. package/dist/pages/8.6/ConnectorSettingsPage.d.ts +0 -38
  27. package/dist/pages/8.6/ConnectorSettingsPage.js +0 -133
  28. package/dist/pages/8.6/ConnectorTemplatePage.d.ts +0 -11
  29. package/dist/pages/8.6/ConnectorTemplatePage.js +0 -34
  30. package/dist/pages/8.6/ConsoleOrganizationPage.d.ts +0 -87
  31. package/dist/pages/8.6/ConsoleOrganizationPage.js +0 -495
  32. package/dist/pages/8.6/FormJsPage.d.ts +0 -30
  33. package/dist/pages/8.6/FormJsPage.js +0 -112
  34. package/dist/pages/8.6/HomePage.d.ts +0 -27
  35. package/dist/pages/8.6/HomePage.js +0 -101
  36. package/dist/pages/8.6/LoginPage.d.ts +0 -30
  37. package/dist/pages/8.6/LoginPage.js +0 -85
  38. package/dist/pages/8.6/ModelerCreatePage.d.ts +0 -211
  39. package/dist/pages/8.6/ModelerCreatePage.js +0 -1125
  40. package/dist/pages/8.6/ModelerHomePage.d.ts +0 -48
  41. package/dist/pages/8.6/ModelerHomePage.js +0 -213
  42. package/dist/pages/8.6/ModelerUserInvitePage.d.ts +0 -28
  43. package/dist/pages/8.6/ModelerUserInvitePage.js +0 -106
  44. package/dist/pages/8.6/OperateHomePage.d.ts +0 -21
  45. package/dist/pages/8.6/OperateHomePage.js +0 -57
  46. package/dist/pages/8.6/OperateProcessInstancePage.d.ts +0 -17
  47. package/dist/pages/8.6/OperateProcessInstancePage.js +0 -58
  48. package/dist/pages/8.6/OperateProcessesPage.d.ts +0 -21
  49. package/dist/pages/8.6/OperateProcessesPage.js +0 -77
  50. package/dist/pages/8.6/OptimizeCollectionsPage.d.ts +0 -15
  51. package/dist/pages/8.6/OptimizeCollectionsPage.js +0 -44
  52. package/dist/pages/8.6/OptimizeDashboardPage.d.ts +0 -11
  53. package/dist/pages/8.6/OptimizeDashboardPage.js +0 -65
  54. package/dist/pages/8.6/OptimizeHomePage.d.ts +0 -12
  55. package/dist/pages/8.6/OptimizeHomePage.js +0 -32
  56. package/dist/pages/8.6/OptimizeReportPage.d.ts +0 -48
  57. package/dist/pages/8.6/OptimizeReportPage.js +0 -163
  58. package/dist/pages/8.6/PlayPage.d.ts +0 -14
  59. package/dist/pages/8.6/PlayPage.js +0 -66
  60. package/dist/pages/8.6/SettingsPage.d.ts +0 -10
  61. package/dist/pages/8.6/SettingsPage.js +0 -43
  62. package/dist/pages/8.6/SignUpPage.d.ts +0 -43
  63. package/dist/pages/8.6/SignUpPage.js +0 -136
  64. package/dist/pages/8.6/TaskDetailsPage.d.ts +0 -66
  65. package/dist/pages/8.6/TaskDetailsPage.js +0 -214
  66. package/dist/pages/8.6/TaskPanelPage.d.ts +0 -18
  67. package/dist/pages/8.6/TaskPanelPage.js +0 -54
  68. package/dist/pages/8.6/TaskProcessesPage.d.ts +0 -11
  69. package/dist/pages/8.6/TaskProcessesPage.js +0 -35
  70. package/dist/pages/8.6/UtilitiesPage.d.ts +0 -38
  71. package/dist/pages/8.6/UtilitiesPage.js +0 -328
  72. package/dist/pages/SM-8.6/ConnectorMarketplacePage.d.ts +0 -16
  73. package/dist/pages/SM-8.6/ConnectorMarketplacePage.js +0 -48
  74. package/dist/pages/SM-8.6/ConnectorSettingsPage.d.ts +0 -28
  75. package/dist/pages/SM-8.6/ConnectorSettingsPage.js +0 -82
  76. package/dist/pages/SM-8.6/ConnectorTemplatePage.d.ts +0 -11
  77. package/dist/pages/SM-8.6/ConnectorTemplatePage.js +0 -34
  78. package/dist/pages/SM-8.6/ConsoleHomePage.d.ts +0 -9
  79. package/dist/pages/SM-8.6/ConsoleHomePage.js +0 -22
  80. package/dist/pages/SM-8.6/ConsoleOrganizationPage.d.ts +0 -22
  81. package/dist/pages/SM-8.6/ConsoleOrganizationPage.js +0 -68
  82. package/dist/pages/SM-8.6/FormJsPage.d.ts +0 -13
  83. package/dist/pages/SM-8.6/FormJsPage.js +0 -30
  84. package/dist/pages/SM-8.6/HomePage.d.ts +0 -20
  85. package/dist/pages/SM-8.6/HomePage.js +0 -49
  86. package/dist/pages/SM-8.6/IdentityPage.d.ts +0 -67
  87. package/dist/pages/SM-8.6/IdentityPage.js +0 -266
  88. package/dist/pages/SM-8.6/IdentityTenantPage.d.ts +0 -50
  89. package/dist/pages/SM-8.6/IdentityTenantPage.js +0 -196
  90. package/dist/pages/SM-8.6/IdentityUsersPage.d.ts +0 -90
  91. package/dist/pages/SM-8.6/IdentityUsersPage.js +0 -505
  92. package/dist/pages/SM-8.6/KeycloakAdminPage.d.ts +0 -15
  93. package/dist/pages/SM-8.6/KeycloakAdminPage.js +0 -56
  94. package/dist/pages/SM-8.6/KeycloakLoginPage.d.ts +0 -11
  95. package/dist/pages/SM-8.6/KeycloakLoginPage.js +0 -25
  96. package/dist/pages/SM-8.6/KeycloakUtils.d.ts +0 -15
  97. package/dist/pages/SM-8.6/KeycloakUtils.js +0 -58
  98. package/dist/pages/SM-8.6/LoginPage.d.ts +0 -22
  99. package/dist/pages/SM-8.6/LoginPage.js +0 -123
  100. package/dist/pages/SM-8.6/ModelerCreatePage.d.ts +0 -167
  101. package/dist/pages/SM-8.6/ModelerCreatePage.js +0 -852
  102. package/dist/pages/SM-8.6/ModelerHomePage.d.ts +0 -41
  103. package/dist/pages/SM-8.6/ModelerHomePage.js +0 -150
  104. package/dist/pages/SM-8.6/NavigationPage.d.ts +0 -42
  105. package/dist/pages/SM-8.6/NavigationPage.js +0 -119
  106. package/dist/pages/SM-8.6/OperateHomePage.d.ts +0 -23
  107. package/dist/pages/SM-8.6/OperateHomePage.js +0 -65
  108. package/dist/pages/SM-8.6/OperateProcessInstancePage.d.ts +0 -22
  109. package/dist/pages/SM-8.6/OperateProcessInstancePage.js +0 -139
  110. package/dist/pages/SM-8.6/OperateProcessesPage.d.ts +0 -33
  111. package/dist/pages/SM-8.6/OperateProcessesPage.js +0 -166
  112. package/dist/pages/SM-8.6/OptimizeCollectionsPage.d.ts +0 -15
  113. package/dist/pages/SM-8.6/OptimizeCollectionsPage.js +0 -44
  114. package/dist/pages/SM-8.6/OptimizeDashboardPage.d.ts +0 -14
  115. package/dist/pages/SM-8.6/OptimizeDashboardPage.js +0 -56
  116. package/dist/pages/SM-8.6/OptimizeHomePage.d.ts +0 -19
  117. package/dist/pages/SM-8.6/OptimizeHomePage.js +0 -62
  118. package/dist/pages/SM-8.6/OptimizeReportPage.d.ts +0 -50
  119. package/dist/pages/SM-8.6/OptimizeReportPage.js +0 -162
  120. package/dist/pages/SM-8.6/PlayPage.d.ts +0 -19
  121. package/dist/pages/SM-8.6/PlayPage.js +0 -103
  122. package/dist/pages/SM-8.6/SettingsPage.d.ts +0 -10
  123. package/dist/pages/SM-8.6/SettingsPage.js +0 -20
  124. package/dist/pages/SM-8.6/TaskDetailsPage.d.ts +0 -64
  125. package/dist/pages/SM-8.6/TaskDetailsPage.js +0 -240
  126. package/dist/pages/SM-8.6/TaskPanelPage.d.ts +0 -22
  127. package/dist/pages/SM-8.6/TaskPanelPage.js +0 -68
  128. package/dist/pages/SM-8.6/TaskProcessesPage.d.ts +0 -11
  129. package/dist/pages/SM-8.6/TaskProcessesPage.js +0 -31
  130. package/dist/pages/SM-8.6/UtlitiesPage.d.ts +0 -21
  131. package/dist/pages/SM-8.6/UtlitiesPage.js +0 -207
  132. package/dist/pages/SM-8.6/optimizeReportUtils.d.ts +0 -6
  133. package/dist/pages/SM-8.6/optimizeReportUtils.js +0 -42
  134. package/dist/pages/c8Run-8.6/OperateHomePage.d.ts +0 -20
  135. package/dist/pages/c8Run-8.6/OperateHomePage.js +0 -52
  136. package/dist/pages/c8Run-8.6/OperateLoginPage.d.ts +0 -14
  137. package/dist/pages/c8Run-8.6/OperateLoginPage.js +0 -37
  138. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.d.ts +0 -17
  139. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.js +0 -76
  140. package/dist/pages/c8Run-8.6/OperateProcessesPage.d.ts +0 -20
  141. package/dist/pages/c8Run-8.6/OperateProcessesPage.js +0 -84
  142. package/dist/pages/c8Run-8.6/TaskDetailsPage.d.ts +0 -65
  143. package/dist/pages/c8Run-8.6/TaskDetailsPage.js +0 -219
  144. package/dist/pages/c8Run-8.6/TaskListLoginPage.d.ts +0 -14
  145. package/dist/pages/c8Run-8.6/TaskListLoginPage.js +0 -37
  146. package/dist/pages/c8Run-8.6/TaskPanelPage.d.ts +0 -23
  147. package/dist/pages/c8Run-8.6/TaskPanelPage.js +0 -76
  148. package/dist/pages/c8Run-8.6/UtilitiesPage.d.ts +0 -6
  149. package/dist/pages/c8Run-8.6/UtilitiesPage.js +0 -45
  150. package/dist/tests/8.6/connectors-user-flows.spec.d.ts +0 -1
  151. package/dist/tests/8.6/connectors-user-flows.spec.js +0 -435
  152. package/dist/tests/8.6/console-user-flows.spec.d.ts +0 -1
  153. package/dist/tests/8.6/console-user-flows.spec.js +0 -193
  154. package/dist/tests/8.6/hto-user-flows.spec.d.ts +0 -1
  155. package/dist/tests/8.6/hto-user-flows.spec.js +0 -365
  156. package/dist/tests/8.6/login.spec.d.ts +0 -1
  157. package/dist/tests/8.6/login.spec.js +0 -27
  158. package/dist/tests/8.6/navigation.spec.d.ts +0 -1
  159. package/dist/tests/8.6/navigation.spec.js +0 -57
  160. package/dist/tests/8.6/operate-access-flow.spec.d.ts +0 -1
  161. package/dist/tests/8.6/operate-access-flow.spec.js +0 -57
  162. package/dist/tests/8.6/optimize-user-flows.spec.d.ts +0 -1
  163. package/dist/tests/8.6/optimize-user-flows.spec.js +0 -231
  164. package/dist/tests/8.6/play.spec.d.ts +0 -1
  165. package/dist/tests/8.6/play.spec.js +0 -94
  166. package/dist/tests/8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  167. package/dist/tests/8.6/rba-enabled-user-flows.spec.js +0 -288
  168. package/dist/tests/8.6/smoke-tests.spec.d.ts +0 -1
  169. package/dist/tests/8.6/smoke-tests.spec.js +0 -188
  170. package/dist/tests/8.6/test-setup.spec.d.ts +0 -1
  171. package/dist/tests/8.6/test-setup.spec.js +0 -68
  172. package/dist/tests/8.6/web-modeler-user-flows.spec.d.ts +0 -1
  173. package/dist/tests/8.6/web-modeler-user-flows.spec.js +0 -692
  174. package/dist/tests/SM-8.6/connectors-user-flows.spec.d.ts +0 -1
  175. package/dist/tests/SM-8.6/connectors-user-flows.spec.js +0 -247
  176. package/dist/tests/SM-8.6/console-user-flows.spec.d.ts +0 -1
  177. package/dist/tests/SM-8.6/console-user-flows.spec.js +0 -55
  178. package/dist/tests/SM-8.6/hto-user-flows.spec.d.ts +0 -1
  179. package/dist/tests/SM-8.6/hto-user-flows.spec.js +0 -393
  180. package/dist/tests/SM-8.6/license-key-user-flows.spec.d.ts +0 -1
  181. package/dist/tests/SM-8.6/license-key-user-flows.spec.js +0 -462
  182. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.d.ts +0 -1
  183. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.js +0 -500
  184. package/dist/tests/SM-8.6/optimize-user-flows.spec.d.ts +0 -1
  185. package/dist/tests/SM-8.6/optimize-user-flows.spec.js +0 -186
  186. package/dist/tests/SM-8.6/play.spec.d.ts +0 -1
  187. package/dist/tests/SM-8.6/play.spec.js +0 -87
  188. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  189. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.js +0 -242
  190. package/dist/tests/SM-8.6/smoke-tests.spec.d.ts +0 -1
  191. package/dist/tests/SM-8.6/smoke-tests.spec.js +0 -158
  192. package/dist/tests/SM-8.6/test-setup.spec.d.ts +0 -1
  193. package/dist/tests/SM-8.6/test-setup.spec.js +0 -134
  194. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.d.ts +0 -1
  195. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.js +0 -126
  196. package/dist/tests/c8Run-8.6/api-tests.spec.d.ts +0 -1
  197. package/dist/tests/c8Run-8.6/api-tests.spec.js +0 -67
  198. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.d.ts +0 -1
  199. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.js +0 -119
  200. package/dist/tests/c8Run-8.6/hto-user-flows.spec.d.ts +0 -1
  201. package/dist/tests/c8Run-8.6/hto-user-flows.spec.js +0 -199
  202. package/dist/tests/c8Run-8.6/login.spec.d.ts +0 -1
  203. package/dist/tests/c8Run-8.6/login.spec.js +0 -22
@@ -1,328 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.modelConnectorsTimerEventDiagram = exports.deleteAllUserGroups = exports.assertTestUsesCorrectOrganization = exports.clickInvitationLinkInEmail = exports.enableRBA = exports.disableRBA = exports.runMultipleProcesses = exports.modelDiagramFromFile = exports.runProcess = exports.completeTaskWithRetry = exports.assertPageTextWithRetry = exports.assertLocatorVisibleWithRetry = exports.modelRestConnector = exports.loginWithRetry = void 0;
4
- const test_1 = require("@playwright/test");
5
- const ModelerHomePage_1 = require("./ModelerHomePage");
6
- const HomePage_1 = require("./HomePage");
7
- const sleep_1 = require("../../utils/sleep");
8
- const randomSleep_1 = require("../../utils/randomSleep");
9
- const fileUpload_1 = require("../../utils/fileUpload");
10
- const mailSlurpClient_1 = require("../../utils/mailSlurpClient");
11
- async function loginWithRetry(page, loginPage, testUser, timeout, maxRetries = 3) {
12
- for (let attempt = 0; attempt < maxRetries; attempt++) {
13
- try {
14
- await page.goto('/');
15
- await (0, sleep_1.sleep)(timeout);
16
- await loginPage.login(testUser);
17
- return;
18
- }
19
- catch (error) {
20
- if (attempt < maxRetries - 1) {
21
- console.warn(`Attempt ${attempt + 1} failed for logging in. Retrying...`);
22
- await (0, randomSleep_1.randomSleep)(10000, 20000);
23
- }
24
- else {
25
- console.error(error);
26
- throw new Error(`Login failed after ${maxRetries} attempts`);
27
- }
28
- }
29
- }
30
- }
31
- exports.loginWithRetry = loginWithRetry;
32
- async function modelRestConnector(modelerCreatePage, connectorSettingsPage, processName, url, auth, resultExpression, resultVariable = '', basicAuthCredentials = {
33
- username: '',
34
- password: '',
35
- }) {
36
- await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
37
- timeout: 30000,
38
- });
39
- await modelerCreatePage.enterDiagramName(processName);
40
- await (0, sleep_1.sleep)(10000);
41
- await modelerCreatePage.clickAppendElementButton();
42
- await modelerCreatePage.clickAppendTaskButton();
43
- await modelerCreatePage.clickChangeTypeButton();
44
- await modelerCreatePage.clickRestConnectorOption();
45
- await connectorSettingsPage.clickAuthenticationTab();
46
- await connectorSettingsPage.clickHTTPEndpointTab();
47
- if (auth == 'bearer') {
48
- await connectorSettingsPage.selectAuthenticationType('bearer');
49
- await (0, test_1.expect)(connectorSettingsPage.bearerTokenInput).toBeVisible({
50
- timeout: 60000,
51
- });
52
- await connectorSettingsPage.clickBearerTokenInput();
53
- await connectorSettingsPage.fillBearerTokenInput('thisisabearertoken');
54
- await connectorSettingsPage.selectMethodType('POST');
55
- }
56
- else if (auth == 'basic') {
57
- await connectorSettingsPage.selectAuthenticationType('basic');
58
- await (0, test_1.expect)(connectorSettingsPage.usernameInput).toBeVisible({
59
- timeout: 60000,
60
- });
61
- await connectorSettingsPage.clickUsernameInput();
62
- (0, test_1.expect)(basicAuthCredentials['username'].length).toBeGreaterThan(0);
63
- (0, test_1.expect)(basicAuthCredentials['password'].length).toBeGreaterThan(0);
64
- await connectorSettingsPage.fillUsernameInput(basicAuthCredentials['username']);
65
- await connectorSettingsPage.clickPasswordInput();
66
- await connectorSettingsPage.fillPasswordInput(basicAuthCredentials['password']);
67
- await connectorSettingsPage.selectMethodType('POST');
68
- }
69
- await connectorSettingsPage.clickUrlInput();
70
- await connectorSettingsPage.fillUrlInput(url);
71
- await connectorSettingsPage.clickOutputMappingTab();
72
- if (resultVariable.length > 0) {
73
- await connectorSettingsPage.clickResultVariableInput();
74
- await connectorSettingsPage.fillResultVariableInput('result');
75
- }
76
- await connectorSettingsPage.clickResultExpressionInput();
77
- await connectorSettingsPage.fillResultExpressionInput(resultExpression);
78
- await modelerCreatePage.clickAppendElementButton();
79
- await modelerCreatePage.clickAppendEndEventButton();
80
- await (0, sleep_1.sleep)(10000);
81
- }
82
- exports.modelRestConnector = modelRestConnector;
83
- async function assertLocatorVisibleWithRetry(page, locator, text, timeout = 120000, maxRetries = 3) {
84
- for (let attempt = 0; attempt < maxRetries; attempt++) {
85
- try {
86
- await (0, test_1.expect)(locator).toBeVisible({
87
- timeout: timeout,
88
- });
89
- return;
90
- }
91
- catch (error) {
92
- if (attempt < maxRetries - 1) {
93
- console.warn(`Attempt ${attempt + 1} failed for asserting ${text}. Retrying...`);
94
- await page.reload();
95
- await (0, sleep_1.sleep)(5000);
96
- }
97
- else {
98
- throw new Error(`Assertion failed after ${maxRetries} attempts`);
99
- }
100
- }
101
- }
102
- }
103
- exports.assertLocatorVisibleWithRetry = assertLocatorVisibleWithRetry;
104
- async function assertPageTextWithRetry(page, text, notVisible, timeout = 120000, maxRetries = 3) {
105
- for (let attempt = 0; attempt < maxRetries; attempt++) {
106
- try {
107
- await page.reload();
108
- if (notVisible == true) {
109
- await (0, sleep_1.sleep)(10000);
110
- await (0, test_1.expect)(page.getByText(text, { exact: true }).first()).not.toBeVisible({
111
- timeout: timeout,
112
- });
113
- }
114
- else {
115
- await (0, test_1.expect)(page.getByText(text, { exact: true }).first()).toBeVisible({
116
- timeout: timeout,
117
- });
118
- }
119
- return;
120
- }
121
- catch (error) {
122
- if (attempt < maxRetries - 1) {
123
- console.warn(`Attempt ${attempt + 1} failed for asserting ${text}. Retrying...`);
124
- }
125
- else {
126
- throw new Error(`Assertion failed after ${maxRetries} attempts`);
127
- }
128
- }
129
- }
130
- }
131
- exports.assertPageTextWithRetry = assertPageTextWithRetry;
132
- async function completeTaskWithRetry(taskPanelPage, taskDetailsPage, taskName, taskPriority, maxRetries = 3) {
133
- for (let attempt = 0; attempt < maxRetries; attempt++) {
134
- try {
135
- await taskPanelPage.openTask(taskName);
136
- await (0, test_1.expect)(taskDetailsPage.detailsInfo.getByText(taskName, { exact: true })).toBeVisible();
137
- if (!(await taskDetailsPage.assignedToMeText.isVisible())) {
138
- await taskDetailsPage.clickAssignToMeButton();
139
- }
140
- await (0, test_1.expect)(taskDetailsPage.detailsPanel.getByText(taskPriority)).toBeVisible();
141
- await taskDetailsPage.clickCompleteTaskButton();
142
- await (0, test_1.expect)(taskPanelPage.availableTasks.getByText(taskName, { exact: true }).first()).not.toBeVisible({ timeout: 5000 });
143
- return;
144
- }
145
- catch (error) {
146
- if (attempt < maxRetries - 1) {
147
- console.warn(`Attempt ${attempt + 1} failed for completing task ${taskName}. Retrying...`);
148
- await (0, sleep_1.sleep)(2000);
149
- }
150
- else {
151
- throw new Error(`Failed to complete task ${taskName} after ${maxRetries} attempts: ${error}`);
152
- }
153
- }
154
- }
155
- }
156
- exports.completeTaskWithRetry = completeTaskWithRetry;
157
- async function runProcess(clusterName, page, modelerHomePage, modelerCreatePage, processName, processId = '', uploadFromFile = '') {
158
- if (uploadFromFile.length > 0) {
159
- await modelDiagramFromFile(page, modelerHomePage, modelerCreatePage, processName, uploadFromFile);
160
- }
161
- else {
162
- await modelerHomePage.clickDiagramTypeDropdown();
163
- await modelerHomePage.clickBpmnTemplateOption();
164
- await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processId);
165
- }
166
- await modelerCreatePage.runProcessInstance(clusterName);
167
- await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
168
- timeout: 60000,
169
- });
170
- await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeHidden({
171
- timeout: 60000,
172
- });
173
- }
174
- exports.runProcess = runProcess;
175
- async function modelDiagramFromFile(page, modelerHomePage, modelerCreatePage, processName, fileName = '', nrOfRenamedUserTasks = 0, taskName = '') {
176
- await modelerHomePage.clickDiagramTypeDropdown();
177
- await modelerHomePage.clickUploadFilesButton();
178
- await (0, fileUpload_1.uploadFile)(page, fileName + '.bpmn');
179
- await modelerHomePage.clickProcessDiagram(fileName);
180
- await modelerCreatePage.clickDiagramBreadcrumb();
181
- await modelerCreatePage.clickEditDiagramNameButton();
182
- await modelerCreatePage.enterDiagramName(processName);
183
- await (0, sleep_1.sleep)(1000);
184
- await modelerCreatePage.clickGeneralPropertiesPanel();
185
- await modelerCreatePage.clickNameInput();
186
- await modelerCreatePage.fillNameInput(processName);
187
- await modelerCreatePage.clickIdInput();
188
- await modelerCreatePage.fillIdInput(processName);
189
- if (nrOfRenamedUserTasks > 0) {
190
- for (let i = 1; i <= nrOfRenamedUserTasks; i++) {
191
- await modelerCreatePage.clickUserTask('process' + i);
192
- await modelerCreatePage.clickNameInput();
193
- await modelerCreatePage.fillNameInput(taskName + i);
194
- await modelerCreatePage.clickIdInput();
195
- await modelerCreatePage.fillIdInput(taskName + i);
196
- await modelerCreatePage.clickCanvas();
197
- }
198
- }
199
- await (0, sleep_1.sleep)(10000);
200
- }
201
- exports.modelDiagramFromFile = modelDiagramFromFile;
202
- async function runMultipleProcesses(clusterName, page, modelerHomePage, modelerCreatePage, options) {
203
- const { processName = 'Camunda_User_Task', numberOfProcesses = 2, uploadFromFile = '', } = options || {};
204
- for (let i = 1; i <= numberOfProcesses; i++) {
205
- await runProcess(clusterName, page, modelerHomePage, modelerCreatePage, processName + i, processName + i, uploadFromFile);
206
- await modelerHomePage.clickProjectBreadcrumb();
207
- }
208
- }
209
- exports.runMultipleProcesses = runMultipleProcesses;
210
- async function disableRBA(clusterName, homePage, clusterPage, clusterDetailsPage, appsPage) {
211
- await appsPage.clickCamundaApps();
212
- await appsPage.clickConsoleLink();
213
- await (0, test_1.expect)(homePage.clusterTab).toBeVisible({ timeout: 120000 });
214
- await homePage.clickClusters();
215
- await clusterPage.clickClusterLink(clusterName);
216
- await (0, test_1.expect)(clusterDetailsPage.settingsTab).toBeVisible({
217
- timeout: 90000,
218
- });
219
- await clusterDetailsPage.clickSettingsTab();
220
- await clusterDetailsPage.disableRBA();
221
- await homePage.clickClusters();
222
- await clusterPage.assertClusterHealthyStatusWithRetry(clusterName);
223
- await clusterPage.clickClusterLink(clusterName);
224
- await (0, test_1.expect)(clusterDetailsPage.rbaEnabledMessage.first()).not.toBeVisible({
225
- timeout: 30000,
226
- });
227
- await clusterDetailsPage.assertComponentsHealth();
228
- }
229
- exports.disableRBA = disableRBA;
230
- async function enableRBA(clusterName, homePage, clusterPage, clusterDetailsPage, appsPage) {
231
- await appsPage.clickCamundaApps();
232
- await appsPage.clickConsoleLink();
233
- await (0, test_1.expect)(homePage.clusterTab).toBeVisible({ timeout: 120000 });
234
- await homePage.clickClusters();
235
- await clusterPage.clickClusterLink(clusterName);
236
- await (0, test_1.expect)(clusterDetailsPage.settingsTab).toBeVisible({
237
- timeout: 90000,
238
- });
239
- await clusterDetailsPage.clickSettingsTab();
240
- await clusterDetailsPage.enableRBA();
241
- await homePage.clickClusters();
242
- await clusterPage.assertClusterHealthyStatusWithRetry(clusterName);
243
- await clusterPage.clickClusterLink(clusterName);
244
- await (0, test_1.expect)(clusterDetailsPage.rbaEnabledMessage.first()).toBeVisible({
245
- timeout: 30000,
246
- });
247
- await clusterDetailsPage.assertComponentsHealth();
248
- }
249
- exports.enableRBA = enableRBA;
250
- async function clickInvitationLinkInEmail(page, id) {
251
- const email = await mailSlurpClient_1.mailSlurp.waitForLatestEmail(id, 120000);
252
- if (email && email.body) {
253
- const confirmationLinkMatch = email.body.match(/href="([^"]*)/);
254
- if (confirmationLinkMatch) {
255
- await page.goto(confirmationLinkMatch[1]);
256
- }
257
- else {
258
- throw new Error('Confirmation link not found in email body.');
259
- }
260
- }
261
- else {
262
- throw new Error('Email or email body is null or undefined.');
263
- }
264
- }
265
- exports.clickInvitationLinkInEmail = clickInvitationLinkInEmail;
266
- async function assertTestUsesCorrectOrganization(page) {
267
- const homePage = new HomePage_1.HomePage(page);
268
- await (0, test_1.expect)(homePage.openOrganizationButton).toBeVisible({ timeout: 90000 });
269
- if (page.url().includes('modeler')) {
270
- const modelerHomePage = new ModelerHomePage_1.ModelerHomePage(page);
271
- await modelerHomePage.clickMessageBanner();
272
- await (0, test_1.expect)(homePage.modelerBanner).toBeVisible({ timeout: 30000 });
273
- }
274
- else {
275
- await (0, test_1.expect)(homePage.consoleBanner).toBeVisible({ timeout: 30000 });
276
- }
277
- try {
278
- await (0, test_1.expect)(page.url()).toContain(process.env.ORG_ID);
279
- }
280
- catch (error) {
281
- // If the first check fails, check by org name
282
- try {
283
- await homePage.clickOpenOrganizationButton();
284
- await page
285
- .getByRole('treeitem', { name: process.env.ORG_NAME, exact: true })
286
- .click({ timeout: 30000 });
287
- }
288
- catch (reloadError) {
289
- await page
290
- .getByRole('button', { name: process.env.ORG_NAME })
291
- .click({ timeout: 30000 });
292
- }
293
- await (0, test_1.expect)(page
294
- .locator('[class="cds--header__global"]')
295
- .getByTitle(process.env.ORG_NAME, { exact: true })
296
- .first()).toBeVisible({
297
- timeout: 30000,
298
- });
299
- await (0, test_1.expect)(page.url()).toContain(process.env.ORG_ID);
300
- await (0, sleep_1.sleep)(5000);
301
- }
302
- }
303
- exports.assertTestUsesCorrectOrganization = assertTestUsesCorrectOrganization;
304
- async function deleteAllUserGroups(homePage, organizationPage, appsPage) {
305
- await appsPage.clickCamundaApps();
306
- await appsPage.clickConsoleLink();
307
- await (0, test_1.expect)(homePage.organizationTab).toBeVisible({ timeout: 120000 });
308
- await homePage.clickOrganization();
309
- await organizationPage.clickGroupsTab();
310
- await organizationPage.deleteAllGroups();
311
- }
312
- exports.deleteAllUserGroups = deleteAllUserGroups;
313
- async function modelConnectorsTimerEventDiagram(modelerCreatePage, modelerHomePage, processName, page) {
314
- await modelerHomePage.clickCrossComponentProjectFolder();
315
- await modelerHomePage.clickDiagramTypeDropdown();
316
- await modelerHomePage.clickUploadFilesButton();
317
- await (0, fileUpload_1.uploadFile)(page, 'Rest Connector Timer Event.bpmn');
318
- await modelerHomePage.clickProcessDiagram('Rest Connector Timer Event');
319
- await modelerCreatePage.clickDiagramBreadcrumb();
320
- await modelerCreatePage.clickRenameDiagramNameButton();
321
- await modelerCreatePage.enterDiagramName(processName);
322
- await modelerCreatePage.clickStartEventElement();
323
- await modelerCreatePage.clickGeneralPropertiesPanel();
324
- await modelerCreatePage.clickIdInput();
325
- await modelerCreatePage.fillIdInput(processName);
326
- await (0, sleep_1.sleep)(5000);
327
- }
328
- exports.modelConnectorsTimerEventDiagram = modelConnectorsTimerEventDiagram;
@@ -1,16 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ConnectorMarketplacePage {
3
- private page;
4
- readonly searchForConnectorTextbox: Locator;
5
- readonly downloadToProjectButton: Locator;
6
- readonly snackbar: Locator;
7
- readonly closeButton: Locator;
8
- constructor(page: Page);
9
- clickSearchForConnectorTextbox(): Promise<void>;
10
- fillSearchForConnectorTextbox(connectorName: string): Promise<void>;
11
- clickDownloadToProjectButton(): Promise<void>;
12
- clickSnackbar(): Promise<void>;
13
- clickCloseButton(): Promise<void>;
14
- downloadConnectorToProject(): Promise<void>;
15
- }
16
- export { ConnectorMarketplacePage };
@@ -1,48 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectorMarketplacePage = void 0;
4
- const test_1 = require("@playwright/test");
5
- class ConnectorMarketplacePage {
6
- page;
7
- searchForConnectorTextbox;
8
- downloadToProjectButton;
9
- snackbar;
10
- closeButton;
11
- constructor(page) {
12
- this.page = page;
13
- this.searchForConnectorTextbox = page.getByPlaceholder('Search for a connector');
14
- this.downloadToProjectButton = page
15
- .getByRole('button', { name: 'Download to project' })
16
- .first();
17
- this.snackbar = page.locator('[data-test="snackbar"]');
18
- this.closeButton = page.getByRole('button', { name: 'Close' });
19
- }
20
- async clickSearchForConnectorTextbox() {
21
- await this.searchForConnectorTextbox.click({ timeout: 60000 });
22
- }
23
- async fillSearchForConnectorTextbox(connectorName) {
24
- await this.searchForConnectorTextbox.fill(connectorName, { timeout: 60000 });
25
- }
26
- async clickDownloadToProjectButton() {
27
- await this.downloadToProjectButton.click({ timeout: 60000 });
28
- }
29
- async clickSnackbar() {
30
- await this.snackbar.click({ timeout: 120000 });
31
- }
32
- async clickCloseButton() {
33
- await this.closeButton.click({ timeout: 60000 });
34
- }
35
- async downloadConnectorToProject() {
36
- try {
37
- await this.clickDownloadToProjectButton();
38
- await (0, test_1.expect)(this.snackbar).toBeVisible({
39
- timeout: 30000,
40
- });
41
- await this.clickSnackbar();
42
- }
43
- catch {
44
- await this.clickCloseButton();
45
- }
46
- }
47
- }
48
- exports.ConnectorMarketplacePage = ConnectorMarketplacePage;
@@ -1,28 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ConnectorSettingsPage {
3
- private page;
4
- readonly urlInput: Locator;
5
- readonly resultExpressionInput: Locator;
6
- readonly authenticationTypeDropdown: Locator;
7
- readonly usernameInput: Locator;
8
- readonly passwordInput: Locator;
9
- readonly methodTypeDropdown: Locator;
10
- readonly resultVariableInput: Locator;
11
- readonly bearerTokenInput: Locator;
12
- constructor(page: Page);
13
- clickUrlInput(): Promise<void>;
14
- fillUrlInput(url: string): Promise<void>;
15
- clickResultExpressionInput(): Promise<void>;
16
- fillResultExpressionInput(resultExpression: string): Promise<void>;
17
- selectAuthenticationType(authentication: string): Promise<void>;
18
- clickUsernameInput(): Promise<void>;
19
- fillUsernameInput(username: string): Promise<void>;
20
- clickPasswordInput(): Promise<void>;
21
- fillPasswordInput(password: string): Promise<void>;
22
- selectMethodType(method: string): Promise<void>;
23
- clickResultVariableInput(): Promise<void>;
24
- fillResultVariableInput(variable: string): Promise<void>;
25
- clickBearerTokenInput(): Promise<void>;
26
- fillBearerTokenInput(token: string): Promise<void>;
27
- }
28
- export { ConnectorSettingsPage };
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectorSettingsPage = void 0;
4
- const ModelerCreatePage_1 = require("./ModelerCreatePage");
5
- class ConnectorSettingsPage {
6
- page;
7
- urlInput;
8
- resultExpressionInput;
9
- authenticationTypeDropdown;
10
- usernameInput;
11
- passwordInput;
12
- methodTypeDropdown;
13
- resultVariableInput;
14
- bearerTokenInput;
15
- constructor(page) {
16
- this.page = page;
17
- this.urlInput = page.getByLabel('URL');
18
- this.resultExpressionInput = page
19
- .locator('div')
20
- .filter({ hasText: /^Result expression=Opened in editor$/ })
21
- .getByRole('textbox');
22
- this.authenticationTypeDropdown = page.getByLabel('Type');
23
- this.usernameInput = page.getByLabel('Username');
24
- this.passwordInput = page.getByLabel('Password');
25
- this.methodTypeDropdown = page.getByLabel('Method');
26
- this.resultVariableInput = page.getByLabel('Result variable');
27
- this.bearerTokenInput = page.getByLabel('Bearer token');
28
- }
29
- async clickUrlInput() {
30
- try {
31
- await this.urlInput.click({ timeout: 60000 });
32
- }
33
- catch {
34
- const modelerCreatePage = new ModelerCreatePage_1.ModelerCreatePage(this.page);
35
- await modelerCreatePage.clickStartEventElement();
36
- await modelerCreatePage.clickAppendTaskButton();
37
- await modelerCreatePage.clickChangeTypeButton();
38
- await modelerCreatePage.clickRestConnectorOption();
39
- await this.urlInput.click({ timeout: 60000 });
40
- }
41
- }
42
- async fillUrlInput(url) {
43
- await this.urlInput.fill(url);
44
- }
45
- async clickResultExpressionInput() {
46
- await this.resultExpressionInput.click();
47
- }
48
- async fillResultExpressionInput(resultExpression) {
49
- await this.resultExpressionInput.fill(resultExpression);
50
- }
51
- async selectAuthenticationType(authentication) {
52
- await this.authenticationTypeDropdown.selectOption(authentication);
53
- }
54
- async clickUsernameInput() {
55
- await this.usernameInput.click({ timeout: 30000 });
56
- }
57
- async fillUsernameInput(username) {
58
- await this.usernameInput.fill(username, { timeout: 30000 });
59
- }
60
- async clickPasswordInput() {
61
- await this.passwordInput.click();
62
- }
63
- async fillPasswordInput(password) {
64
- await this.passwordInput.fill(password);
65
- }
66
- async selectMethodType(method) {
67
- await this.methodTypeDropdown.selectOption(method, { timeout: 60000 });
68
- }
69
- async clickResultVariableInput() {
70
- await this.resultVariableInput.click();
71
- }
72
- async fillResultVariableInput(variable) {
73
- await this.resultVariableInput.fill(variable);
74
- }
75
- async clickBearerTokenInput() {
76
- await this.bearerTokenInput.click({ timeout: 30000 });
77
- }
78
- async fillBearerTokenInput(token) {
79
- await this.bearerTokenInput.fill(token);
80
- }
81
- }
82
- exports.ConnectorSettingsPage = ConnectorSettingsPage;
@@ -1,11 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ConnectorTemplatePage {
3
- private page;
4
- readonly publishToOrgButton: Locator;
5
- readonly publishButton: Locator;
6
- constructor(page: Page);
7
- clickPublishToOrgButton(): Promise<void>;
8
- clickPublishButton(): Promise<void>;
9
- publishConnector(): Promise<void>;
10
- }
11
- export { ConnectorTemplatePage };
@@ -1,34 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectorTemplatePage = void 0;
4
- const test_1 = require("@playwright/test");
5
- class ConnectorTemplatePage {
6
- page;
7
- publishToOrgButton;
8
- publishButton;
9
- constructor(page) {
10
- this.page = page;
11
- this.publishButton = page.getByRole('button', {
12
- name: 'Publish',
13
- exact: true,
14
- });
15
- this.publishToOrgButton = page.locator('[data-test="publish-to-org"]');
16
- }
17
- async clickPublishToOrgButton() {
18
- await this.publishToOrgButton.click({ timeout: 90000 });
19
- }
20
- async clickPublishButton() {
21
- await this.publishButton.click({ timeout: 90000 });
22
- }
23
- async publishConnector() {
24
- try {
25
- await (0, test_1.expect)(this.publishToOrgButton).toBeVisible({ timeout: 15000 });
26
- }
27
- catch (error) {
28
- return;
29
- }
30
- await this.clickPublishToOrgButton();
31
- await this.clickPublishButton();
32
- }
33
- }
34
- exports.ConnectorTemplatePage = ConnectorTemplatePage;
@@ -1,9 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ConsoleHomePage {
3
- private page;
4
- readonly consoleBanner: Locator;
5
- readonly licenseKeyTagNonProduction: Locator;
6
- readonly licenseKeyTagProduction: Locator;
7
- constructor(page: Page);
8
- }
9
- export { ConsoleHomePage };
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConsoleHomePage = void 0;
4
- class ConsoleHomePage {
5
- page;
6
- consoleBanner;
7
- licenseKeyTagNonProduction;
8
- licenseKeyTagProduction;
9
- constructor(page) {
10
- this.page = page;
11
- this.consoleBanner = page.getByRole('link', {
12
- name: 'Camunda logo Console',
13
- });
14
- this.licenseKeyTagNonProduction = page.getByText('Non-production license', {
15
- exact: true,
16
- });
17
- this.licenseKeyTagProduction = page.getByText('Production license', {
18
- exact: true,
19
- });
20
- }
21
- }
22
- exports.ConsoleHomePage = ConsoleHomePage;
@@ -1,22 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ConsoleOrganizationPage {
3
- private page;
4
- readonly usersTab: Locator;
5
- readonly optionsButton: Locator;
6
- readonly editUserMenuItem: Locator;
7
- readonly operationsEngineerCheckbox: Locator;
8
- readonly developerCheckbox: Locator;
9
- readonly analystCheckbox: Locator;
10
- readonly confirmButton: Locator;
11
- constructor(page: Page);
12
- clickUsersTab(): Promise<void>;
13
- clickOptionsButton(): Promise<void>;
14
- clickEditUserMenuItem(): Promise<void>;
15
- clickOperationsEngineerCheckbox(): Promise<void>;
16
- checkDeveloperCheckbox(): Promise<void>;
17
- uncheckDeveloperCheckbox(): Promise<void>;
18
- checkAnalystCheckbox(): Promise<void>;
19
- uncheckAnalystCheckbox(): Promise<void>;
20
- clickConfirmButton(): Promise<void>;
21
- }
22
- export { ConsoleOrganizationPage };
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConsoleOrganizationPage = void 0;
4
- class ConsoleOrganizationPage {
5
- page;
6
- usersTab;
7
- optionsButton;
8
- editUserMenuItem;
9
- operationsEngineerCheckbox;
10
- developerCheckbox;
11
- analystCheckbox;
12
- confirmButton;
13
- constructor(page) {
14
- this.page = page;
15
- this.usersTab = page.getByRole('tab', { name: 'Users' });
16
- this.optionsButton = page.getByRole('button', { name: 'Options' });
17
- this.editUserMenuItem = page.getByRole('menuitem', { name: 'Edit User' });
18
- this.operationsEngineerCheckbox = page
19
- .getByRole('group')
20
- .locator('label')
21
- .filter({ hasText: 'Operations Engineer' });
22
- this.developerCheckbox = page
23
- .getByRole('group')
24
- .locator('label')
25
- .filter({ hasText: 'Developer' });
26
- this.analystCheckbox = page
27
- .getByRole('group')
28
- .locator('label')
29
- .filter({ hasText: 'Analyst' });
30
- this.confirmButton = page.getByRole('button', { name: 'Confirm' });
31
- }
32
- async clickUsersTab() {
33
- await this.usersTab.click();
34
- }
35
- async clickOptionsButton() {
36
- await this.optionsButton.click();
37
- }
38
- async clickEditUserMenuItem() {
39
- await this.editUserMenuItem.click();
40
- }
41
- async clickOperationsEngineerCheckbox() {
42
- await this.operationsEngineerCheckbox.click();
43
- }
44
- async checkDeveloperCheckbox() {
45
- if (!(await this.developerCheckbox.isChecked())) {
46
- await this.developerCheckbox.click();
47
- }
48
- }
49
- async uncheckDeveloperCheckbox() {
50
- if (await this.developerCheckbox.isChecked()) {
51
- await this.developerCheckbox.click();
52
- }
53
- }
54
- async checkAnalystCheckbox() {
55
- if (!(await this.analystCheckbox.isChecked())) {
56
- await this.analystCheckbox.click();
57
- }
58
- }
59
- async uncheckAnalystCheckbox() {
60
- if (await this.analystCheckbox.isChecked()) {
61
- await this.analystCheckbox.click();
62
- }
63
- }
64
- async clickConfirmButton() {
65
- await this.confirmButton.click();
66
- }
67
- }
68
- exports.ConsoleOrganizationPage = ConsoleOrganizationPage;