@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
@@ -1,334 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClusterPage = void 0;
4
- const test_1 = require("@playwright/test");
5
- const sleep_1 = require("../../utils/sleep");
6
- class ClusterPage {
7
- defaultClusterType = 'G3-Dev';
8
- page;
9
- createNewClusterButton;
10
- clusterNameInput;
11
- createClusterButton;
12
- clusterCreatingStatusText;
13
- clusterHealthyStatusText;
14
- clusterHealthyIndicatorSelector;
15
- clusterGenerationCompleteMessage;
16
- clustersBreadcrumb;
17
- deleteClusterButton;
18
- confirmDeleteInput;
19
- dangerDeleteButton;
20
- connectorSecretsTab;
21
- createAClusterButton;
22
- clusterVersionOption;
23
- alphaTab;
24
- devTab;
25
- stableTab;
26
- qaGenerationsTab;
27
- gcpRegion;
28
- clustersList;
29
- g3DevClusterType;
30
- constructor(page) {
31
- this.page = page;
32
- this.createNewClusterButton = page.getByRole('button', {
33
- name: 'Create new Cluster',
34
- });
35
- this.clusterNameInput = page.getByPlaceholder('Enter a name for the cluster');
36
- this.createClusterButton = page.getByRole('button', {
37
- name: 'Create cluster',
38
- });
39
- this.clusterCreatingStatusText = page.getByText('Creating', { exact: true });
40
- this.clusterHealthyStatusText = page.getByText('Healthy', { exact: true });
41
- this.clusterHealthyIndicatorSelector = '[class="healthy healthIndicator"]';
42
- this.clusterGenerationCompleteMessage = page.getByText('Test Cluster is healthy and ready to use');
43
- this.clustersBreadcrumb = page
44
- .getByLabel('Breadcrumb')
45
- .getByRole('link', { name: 'Clusters' });
46
- this.deleteClusterButton = page.getByRole('button', { name: 'Delete' });
47
- this.confirmDeleteInput = page.getByRole('textbox', {
48
- name: 'Type the word DELETE to confirm',
49
- });
50
- this.dangerDeleteButton = page.getByRole('button', { name: 'danger Delete' });
51
- this.connectorSecretsTab = page.getByRole('tab', {
52
- name: 'Connector Secrets',
53
- });
54
- this.createAClusterButton = page.getByRole('button', {
55
- name: 'Create a Cluster',
56
- });
57
- this.clusterVersionOption = page
58
- .locator('label')
59
- .filter({ hasText: `${process.env.CLUSTER_VERSION}` })
60
- .locator('span')
61
- .first();
62
- this.alphaTab = page.getByRole('tab', { name: 'Alpha' });
63
- this.devTab = page.getByRole('tab', { name: 'Internal Dev' });
64
- this.stableTab = page.getByRole('tab', { name: 'Stable' });
65
- this.qaGenerationsTab = page.getByRole('tab', { name: 'QA Generations' });
66
- this.gcpRegion = page.getByRole('tab', {
67
- name: 'GCP',
68
- });
69
- this.clustersList = page
70
- .getByRole('row')
71
- .filter({ hasNotText: 'Generation' }); //Filter out header row
72
- this.g3DevClusterType = page.locator('label').filter({
73
- hasText: this.defaultClusterType,
74
- });
75
- }
76
- async clickClusterTab() {
77
- try {
78
- const urlCheckPromise = this.page.waitForURL(/\/clusters/, {
79
- timeout: 60000,
80
- });
81
- await urlCheckPromise;
82
- }
83
- catch (error) {
84
- await this.clickClusterBanner();
85
- }
86
- }
87
- async clickClusterBanner() {
88
- await this.page
89
- .getByRole('banner')
90
- .getByRole('link', { name: 'Clusters' })
91
- .click({ timeout: 60000 });
92
- }
93
- async createCluster(name, region = 'GCP') {
94
- await this.clickClusterTab();
95
- await this.deleteCluster(name);
96
- await this.clickCreateNewClusterButton();
97
- await this.clickClusterNameInput();
98
- await this.fillClusterNameInput(name);
99
- await this.clickClusterType();
100
- await this.clickCloudProvider(region);
101
- await this.clickClusterOption();
102
- await this.clickCreateClusterButton();
103
- await this.clickClustersBreadcrumb(name);
104
- }
105
- async clickCloudProvider(region = 'GCP') {
106
- const provider = this.page.getByRole('tab', { name: region });
107
- await (0, test_1.expect)(provider).toBeVisible({ timeout: 60000 });
108
- await provider.click();
109
- }
110
- async createClusterIfNotExists(clusterName) {
111
- await (0, sleep_1.sleep)(10000);
112
- if ((await this.cluster(clusterName).isVisible({ timeout: 20000 })) &&
113
- (await this.isClusterHealthy(clusterName))) {
114
- console.log(`${clusterName} exists and is healthy.`);
115
- }
116
- else {
117
- await this.createCluster(clusterName);
118
- await this.assertClusterHealthyStatusWithRetry(clusterName, 300000);
119
- }
120
- }
121
- async isClusterHealthy(name) {
122
- return this.cluster(name)
123
- .getByText(`Healthy`, { exact: true })
124
- .isVisible({ timeout: 20000 });
125
- }
126
- async assertClusterHealthyStatusWithRetry(name, timeout = 140000, maxRetries = 3, retryDelay = 20000) {
127
- const healthCheck = this.cluster(name).getByText(`Healthy`, { exact: true });
128
- for (let attempt = 0; attempt < maxRetries; attempt++) {
129
- try {
130
- await this.page.reload();
131
- await (0, test_1.expect)(healthCheck).toBeVisible({
132
- timeout: timeout,
133
- });
134
- return;
135
- }
136
- catch (error) {
137
- if (attempt < maxRetries - 1) {
138
- console.warn(`Attempt ${attempt + 1} failed. Retrying...`);
139
- await new Promise((resolve) => setTimeout(resolve, retryDelay));
140
- }
141
- else {
142
- throw new Error(`Assertion failed after ${maxRetries} attempts`);
143
- }
144
- }
145
- }
146
- }
147
- async deleteCluster(name) {
148
- await (0, sleep_1.sleep)(5000);
149
- let deleteButtons = this.cluster(name).getByRole('button', {
150
- name: 'Delete',
151
- });
152
- while ((await deleteButtons.count()) > 0) {
153
- const deleteButton = deleteButtons.nth(0);
154
- if (await deleteButton.isVisible()) {
155
- try {
156
- await deleteButton.click({ force: true, timeout: 60000 });
157
- }
158
- catch (error) {
159
- await this.clickClusterBanner();
160
- await (0, test_1.expect)(deleteButton).toBeVisible({ timeout: 60000 });
161
- await deleteButton.click({ force: true, timeout: 60000 });
162
- }
163
- await this.confirmDeleteInput.click({ force: true, timeout: 60000 });
164
- await this.confirmDeleteInput.fill('DELETE', { timeout: 60000 });
165
- const dangerDeleteButtons = await this.dangerDeleteButton.all();
166
- const lastDangerDeleteButton = dangerDeleteButtons[dangerDeleteButtons.length - 1];
167
- await lastDangerDeleteButton.click();
168
- await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
169
- timeout: 60000,
170
- });
171
- // Refresh the list of delete buttons
172
- deleteButtons = this.cluster(name).getByRole('button', {
173
- name: 'Delete',
174
- });
175
- }
176
- }
177
- await (0, sleep_1.sleep)(20000);
178
- }
179
- cluster(name) {
180
- return this.clustersList.filter({ hasText: name });
181
- }
182
- async clickClusterType() {
183
- if (process.env.IS_PROD !== 'true') {
184
- await (0, test_1.expect)(this.g3DevClusterType).toBeVisible({ timeout: 60000 });
185
- await this.g3DevClusterType.click();
186
- }
187
- }
188
- async clickCreateNewClusterButton() {
189
- const maxRetries = 3;
190
- for (let retries = 0; retries < maxRetries; retries++) {
191
- try {
192
- if (retries === 0) {
193
- await this.createNewClusterButton.click({ timeout: 60000 });
194
- }
195
- else {
196
- await this.clickClusterBanner();
197
- await this.createNewClusterButton.click({ timeout: 60000 });
198
- }
199
- return;
200
- }
201
- catch (error) {
202
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
203
- await new Promise((resolve) => setTimeout(resolve, 10000));
204
- }
205
- }
206
- throw new Error(`Failed to click the create a new cluster button after ${maxRetries} attempts.`);
207
- }
208
- async clickClusterNameInput() {
209
- const maxRetries = 3;
210
- for (let retries = 0; retries < maxRetries; retries++) {
211
- try {
212
- if (retries === 0) {
213
- await this.clusterNameInput.click({ timeout: 30000 });
214
- }
215
- else {
216
- await this.clickClusterBanner();
217
- await this.clusterNameInput.click({ timeout: 30000 });
218
- }
219
- return;
220
- }
221
- catch (error) {
222
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
223
- await new Promise((resolve) => setTimeout(resolve, 10000));
224
- }
225
- }
226
- throw new Error(`Failed to click the create a new cluster button after ${maxRetries} attempts.`);
227
- }
228
- async fillClusterNameInput(name) {
229
- await this.clusterNameInput.fill(name);
230
- }
231
- async clickCreateClusterButton() {
232
- await this.createClusterButton.click({ timeout: 120000 });
233
- }
234
- async clickClustersBreadcrumb(clusterName) {
235
- const regex = new RegExp(`${clusterName}.*?Creatingdev`);
236
- try {
237
- await this.clustersBreadcrumb.click({ timeout: 60000 });
238
- await (0, test_1.expect)(this.page.getByText(regex)).toBeVisible({
239
- timeout: 30000,
240
- });
241
- }
242
- catch (error) {
243
- const healthyCheckRegex = new RegExp(`${clusterName}.*?Healthydev`);
244
- await this.clickClusterBanner();
245
- await (0, test_1.expect)(this.page.getByText(healthyCheckRegex)).toBeVisible({
246
- timeout: 120000,
247
- });
248
- }
249
- }
250
- async clickClusterLink(name) {
251
- const maxRetries = 3;
252
- for (let retries = 0; retries < maxRetries; retries++) {
253
- try {
254
- if (retries === 0) {
255
- await this.cluster(name)
256
- .getByRole('link', {
257
- name: name,
258
- })
259
- .click({ timeout: 60000 });
260
- }
261
- else {
262
- await this.clickClusterBanner();
263
- await this.cluster(name)
264
- .getByRole('link', {
265
- name: name,
266
- })
267
- .click({ timeout: 60000 });
268
- }
269
- return;
270
- }
271
- catch (error) {
272
- await this.page.reload();
273
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
274
- await new Promise((resolve) => setTimeout(resolve, 10000));
275
- }
276
- }
277
- throw new Error(`Failed to click the test cluster link link after ${maxRetries} attempts.`);
278
- }
279
- async clickConnectorSecretesTab(clusterName) {
280
- const maxRetries = 3;
281
- for (let retries = 0; retries < maxRetries; retries++) {
282
- try {
283
- await this.connectorSecretsTab.click();
284
- return;
285
- }
286
- catch (error) {
287
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
288
- if (retries === 0) {
289
- try {
290
- await this.clickClusterBanner();
291
- await this.clickClusterLink(clusterName);
292
- }
293
- catch (error) {
294
- console.error(`Camunda apps click attempt failed: ${error}`);
295
- }
296
- }
297
- await new Promise((resolve) => setTimeout(resolve, 1000));
298
- }
299
- }
300
- throw new Error(`Failed to click the connector secrets link after ${maxRetries} attempts.`);
301
- }
302
- async clickClusterOption() {
303
- const tabs = [
304
- this.clickStableTab,
305
- this.clickDevTab,
306
- this.clickQAGenerationsTab,
307
- this.clickAlphaTab,
308
- ];
309
- for (const clickTab of tabs) {
310
- try {
311
- await clickTab.call(this);
312
- await this.clusterVersionOption.click({ timeout: 25000 });
313
- return;
314
- }
315
- catch (error) {
316
- console.error('Error clicking tab or cluster version option:', error);
317
- }
318
- }
319
- throw new Error('Failed to find cluster generation');
320
- }
321
- async clickAlphaTab() {
322
- await this.alphaTab.click();
323
- }
324
- async clickDevTab() {
325
- await this.devTab.click();
326
- }
327
- async clickStableTab() {
328
- await this.stableTab.click();
329
- }
330
- async clickQAGenerationsTab() {
331
- await this.qaGenerationsTab.click();
332
- }
333
- }
334
- exports.ClusterPage = ClusterPage;
@@ -1,21 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ClusterSecretsPage {
3
- private page;
4
- readonly createNewSecretButton: Locator;
5
- readonly keyInput: Locator;
6
- readonly valueInput: Locator;
7
- readonly createButton: Locator;
8
- readonly operationsButton: Locator;
9
- readonly deleteConnectorSecretButton: Locator;
10
- readonly deleteConnectorSecretSubButton: Locator;
11
- readonly dialog: Locator;
12
- constructor(page: Page);
13
- deleteConnectorSecretsIfExist(): Promise<void>;
14
- clickCreateNewSecretButton(): Promise<void>;
15
- clickKeyInput(): Promise<void>;
16
- fillKeyInput(key: string): Promise<void>;
17
- clickValueInput(): Promise<void>;
18
- fillValueInput(value: string): Promise<void>;
19
- clickCreateButton(): Promise<void>;
20
- }
21
- export { ClusterSecretsPage };
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ClusterSecretsPage = void 0;
4
- const test_1 = require("@playwright/test");
5
- const sleep_1 = require("../../utils/sleep");
6
- class ClusterSecretsPage {
7
- page;
8
- createNewSecretButton;
9
- keyInput;
10
- valueInput;
11
- createButton;
12
- operationsButton;
13
- deleteConnectorSecretButton;
14
- deleteConnectorSecretSubButton;
15
- dialog;
16
- constructor(page) {
17
- this.page = page;
18
- this.createNewSecretButton = page.getByRole('button', {
19
- name: 'Create new secret',
20
- });
21
- this.keyInput = page.getByLabel('Key');
22
- this.valueInput = page.getByLabel('Value', { exact: true });
23
- this.createButton = page.getByRole('button', { name: 'Create', exact: true });
24
- this.operationsButton = page.getByRole('button', {
25
- name: 'operations',
26
- exact: true,
27
- });
28
- this.deleteConnectorSecretButton = page.getByRole('menuitem', {
29
- name: 'delete',
30
- });
31
- this.deleteConnectorSecretSubButton = page.getByRole('button', {
32
- name: 'danger Delete',
33
- });
34
- this.dialog = page.getByRole('dialog');
35
- }
36
- async deleteConnectorSecretsIfExist() {
37
- try {
38
- await (0, test_1.expect)(this.operationsButton.first()).toBeVisible({
39
- timeout: 10000,
40
- });
41
- }
42
- catch (error) {
43
- return; //No Connector Secrets found in the list
44
- }
45
- try {
46
- let operations = await this.operationsButton.all();
47
- while (operations.length > 0) {
48
- const operationButton = operations[0];
49
- if (await operationButton.isVisible()) {
50
- await operationButton.click({ timeout: 60000 });
51
- await this.deleteConnectorSecretButton.click({ timeout: 60000 });
52
- await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 40000 });
53
- await this.deleteConnectorSecretSubButton.click();
54
- await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
55
- timeout: 60000,
56
- });
57
- }
58
- await (0, sleep_1.sleep)(3000);
59
- operations = await this.operationsButton.all();
60
- }
61
- await (0, test_1.expect)(this.operationsButton).not.toBeVisible({
62
- timeout: 30000,
63
- });
64
- }
65
- catch (error) {
66
- console.error('Error during Connector Secrets deletion: ', error);
67
- }
68
- }
69
- async clickCreateNewSecretButton() {
70
- try {
71
- await this.createNewSecretButton.click({ timeout: 60000 });
72
- }
73
- catch (error) {
74
- await this.page
75
- .getByRole('banner')
76
- .getByRole('link', { name: 'Clusters' })
77
- .click({ timeout: 60000 });
78
- await this.page
79
- .getByRole('link', { name: 'Test Cluster' })
80
- .click({ timeout: 60000 });
81
- await this.page
82
- .getByRole('tab', {
83
- name: 'Connector Secrets',
84
- })
85
- .click({ timeout: 60000 });
86
- await this.createNewSecretButton.click({ timeout: 60000 });
87
- }
88
- }
89
- async clickKeyInput() {
90
- await this.keyInput.click();
91
- }
92
- async fillKeyInput(key) {
93
- await this.keyInput.fill(key);
94
- }
95
- async clickValueInput() {
96
- await this.valueInput.click();
97
- }
98
- async fillValueInput(value) {
99
- await this.valueInput.fill(value);
100
- }
101
- async clickCreateButton() {
102
- await this.createButton.click();
103
- }
104
- }
105
- exports.ClusterSecretsPage = ClusterSecretsPage;
@@ -1,18 +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
- readonly replaceResourceButton: Locator;
9
- constructor(page: Page);
10
- clickSearchForConnectorTextbox(): Promise<void>;
11
- fillSearchForConnectorTextbox(connectorName: string): Promise<void>;
12
- clickDownloadToProjectButton(): Promise<void>;
13
- clickSnackbar(): Promise<void>;
14
- clickCloseButton(): Promise<void>;
15
- clickReplaceResourceButton(): Promise<void>;
16
- downloadConnectorToProject(): Promise<void>;
17
- }
18
- export { ConnectorMarketplacePage };
@@ -1,59 +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
- replaceResourceButton;
12
- constructor(page) {
13
- this.page = page;
14
- this.searchForConnectorTextbox = page.getByPlaceholder('Search for a connector');
15
- this.downloadToProjectButton = page
16
- .getByRole('button', { name: 'Download to project' })
17
- .first();
18
- this.snackbar = page.locator('[data-test="snackbar"]');
19
- this.closeButton = page.getByRole('button', { name: 'Close' });
20
- this.replaceResourceButton = page.getByRole('button', {
21
- name: 'Replace resource',
22
- });
23
- }
24
- async clickSearchForConnectorTextbox() {
25
- await this.searchForConnectorTextbox.click({ timeout: 60000 });
26
- }
27
- async fillSearchForConnectorTextbox(connectorName) {
28
- await this.searchForConnectorTextbox.fill(connectorName, { timeout: 60000 });
29
- }
30
- async clickDownloadToProjectButton() {
31
- await this.downloadToProjectButton.click({ timeout: 60000 });
32
- }
33
- async clickSnackbar() {
34
- await this.snackbar.click({ timeout: 120000 });
35
- }
36
- async clickCloseButton() {
37
- await this.closeButton.click({ timeout: 60000 });
38
- }
39
- async clickReplaceResourceButton() {
40
- await this.replaceResourceButton.click({ timeout: 60000 });
41
- }
42
- async downloadConnectorToProject() {
43
- try {
44
- await this.clickDownloadToProjectButton();
45
- await (0, test_1.expect)(this.snackbar).toBeVisible({
46
- timeout: 90000,
47
- });
48
- await this.clickSnackbar();
49
- }
50
- catch {
51
- await this.clickReplaceResourceButton();
52
- await (0, test_1.expect)(this.snackbar).toBeVisible({
53
- timeout: 90000,
54
- });
55
- await this.clickSnackbar();
56
- }
57
- }
58
- }
59
- 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,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectorSettingsPage = void 0;
4
- class ConnectorSettingsPage {
5
- page;
6
- urlInput;
7
- resultExpressionInput;
8
- authenticationTypeDropdown;
9
- usernameInput;
10
- passwordInput;
11
- methodTypeDropdown;
12
- resultVariableInput;
13
- bearerTokenInput;
14
- constructor(page) {
15
- this.page = page;
16
- this.urlInput = page.getByLabel('URL');
17
- this.resultExpressionInput = page.getByRole('textbox', {
18
- name: /^Result expression$/,
19
- });
20
- this.authenticationTypeDropdown = page.getByLabel('Type');
21
- this.usernameInput = page.getByLabel('Username');
22
- this.passwordInput = page.getByLabel('Password');
23
- this.methodTypeDropdown = page.getByLabel('Method');
24
- this.resultVariableInput = page.getByLabel('Result variable');
25
- this.bearerTokenInput = page.getByLabel('Bearer token');
26
- }
27
- async clickUrlInput() {
28
- await this.urlInput.click({ timeout: 90000 });
29
- }
30
- async fillUrlInput(url) {
31
- await this.urlInput.fill(url, { timeout: 90000 });
32
- }
33
- async clickResultExpressionInput() {
34
- await this.resultExpressionInput.click({ timeout: 90000 });
35
- }
36
- async fillResultExpressionInput(resultExpression) {
37
- await this.resultExpressionInput.fill(resultExpression, { timeout: 90000 });
38
- }
39
- async selectAuthenticationType(authentication) {
40
- await this.authenticationTypeDropdown.selectOption(authentication, {
41
- timeout: 60000,
42
- });
43
- }
44
- async clickUsernameInput() {
45
- await this.usernameInput.click({ timeout: 90000 });
46
- }
47
- async fillUsernameInput(username) {
48
- await this.usernameInput.fill(username, { timeout: 60000 });
49
- }
50
- async clickPasswordInput() {
51
- await this.passwordInput.click({ timeout: 60000 });
52
- }
53
- async fillPasswordInput(password) {
54
- await this.passwordInput.fill(password, { timeout: 60000 });
55
- }
56
- async selectMethodType(method) {
57
- await this.methodTypeDropdown.selectOption(method, { timeout: 60000 });
58
- }
59
- async clickResultVariableInput() {
60
- await this.resultVariableInput.click({ timeout: 60000 });
61
- }
62
- async fillResultVariableInput(variable) {
63
- await this.resultVariableInput.fill(variable, { timeout: 90000 });
64
- }
65
- async clickBearerTokenInput() {
66
- await this.bearerTokenInput.click({ timeout: 60000 });
67
- }
68
- async fillBearerTokenInput(token) {
69
- await this.bearerTokenInput.fill(token, { timeout: 60000 });
70
- }
71
- }
72
- 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;