@camunda/e2e-test-suite 0.0.714 → 0.0.716

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 (204) hide show
  1. package/.github/c8_versions.json +0 -3
  2. package/README.md +0 -6
  3. package/dist/pages/8.9/ModelerCreatePage.d.ts +3 -1
  4. package/dist/pages/8.9/ModelerCreatePage.js +13 -3
  5. package/dist/tests/8.9/web-modeler-user-flows.spec.js +42 -37
  6. package/dist/utils/clusterVersions.d.ts +0 -1
  7. package/dist/utils/clusterVersions.js +0 -1
  8. package/package.json +1 -1
  9. package/dist/fixtures/8.6.d.ts +0 -63
  10. package/dist/fixtures/8.6.js +0 -162
  11. package/dist/fixtures/SM-8.6.d.ts +0 -63
  12. package/dist/fixtures/SM-8.6.js +0 -149
  13. package/dist/fixtures/c8Run-8.6.d.ts +0 -20
  14. package/dist/fixtures/c8Run-8.6.js +0 -56
  15. package/dist/pages/8.6/AppsPage.d.ts +0 -33
  16. package/dist/pages/8.6/AppsPage.js +0 -337
  17. package/dist/pages/8.6/ClientCredentialsDetailsPage.d.ts +0 -12
  18. package/dist/pages/8.6/ClientCredentialsDetailsPage.js +0 -36
  19. package/dist/pages/8.6/ClusterDetailsPage.d.ts +0 -75
  20. package/dist/pages/8.6/ClusterDetailsPage.js +0 -443
  21. package/dist/pages/8.6/ClusterPage.d.ts +0 -59
  22. package/dist/pages/8.6/ClusterPage.js +0 -320
  23. package/dist/pages/8.6/ClusterSecretsPage.d.ts +0 -28
  24. package/dist/pages/8.6/ClusterSecretsPage.js +0 -134
  25. package/dist/pages/8.6/ConnectorMarketplacePage.d.ts +0 -19
  26. package/dist/pages/8.6/ConnectorMarketplacePage.js +0 -60
  27. package/dist/pages/8.6/ConnectorSettingsPage.d.ts +0 -38
  28. package/dist/pages/8.6/ConnectorSettingsPage.js +0 -133
  29. package/dist/pages/8.6/ConnectorTemplatePage.d.ts +0 -11
  30. package/dist/pages/8.6/ConnectorTemplatePage.js +0 -34
  31. package/dist/pages/8.6/ConsoleOrganizationPage.d.ts +0 -87
  32. package/dist/pages/8.6/ConsoleOrganizationPage.js +0 -495
  33. package/dist/pages/8.6/FormJsPage.d.ts +0 -30
  34. package/dist/pages/8.6/FormJsPage.js +0 -112
  35. package/dist/pages/8.6/HomePage.d.ts +0 -27
  36. package/dist/pages/8.6/HomePage.js +0 -101
  37. package/dist/pages/8.6/LoginPage.d.ts +0 -30
  38. package/dist/pages/8.6/LoginPage.js +0 -85
  39. package/dist/pages/8.6/ModelerCreatePage.d.ts +0 -211
  40. package/dist/pages/8.6/ModelerCreatePage.js +0 -1125
  41. package/dist/pages/8.6/ModelerHomePage.d.ts +0 -48
  42. package/dist/pages/8.6/ModelerHomePage.js +0 -213
  43. package/dist/pages/8.6/ModelerUserInvitePage.d.ts +0 -28
  44. package/dist/pages/8.6/ModelerUserInvitePage.js +0 -106
  45. package/dist/pages/8.6/OperateHomePage.d.ts +0 -21
  46. package/dist/pages/8.6/OperateHomePage.js +0 -57
  47. package/dist/pages/8.6/OperateProcessInstancePage.d.ts +0 -17
  48. package/dist/pages/8.6/OperateProcessInstancePage.js +0 -58
  49. package/dist/pages/8.6/OperateProcessesPage.d.ts +0 -21
  50. package/dist/pages/8.6/OperateProcessesPage.js +0 -77
  51. package/dist/pages/8.6/OptimizeCollectionsPage.d.ts +0 -15
  52. package/dist/pages/8.6/OptimizeCollectionsPage.js +0 -44
  53. package/dist/pages/8.6/OptimizeDashboardPage.d.ts +0 -11
  54. package/dist/pages/8.6/OptimizeDashboardPage.js +0 -65
  55. package/dist/pages/8.6/OptimizeHomePage.d.ts +0 -12
  56. package/dist/pages/8.6/OptimizeHomePage.js +0 -32
  57. package/dist/pages/8.6/OptimizeReportPage.d.ts +0 -48
  58. package/dist/pages/8.6/OptimizeReportPage.js +0 -163
  59. package/dist/pages/8.6/PlayPage.d.ts +0 -14
  60. package/dist/pages/8.6/PlayPage.js +0 -66
  61. package/dist/pages/8.6/SettingsPage.d.ts +0 -10
  62. package/dist/pages/8.6/SettingsPage.js +0 -43
  63. package/dist/pages/8.6/SignUpPage.d.ts +0 -43
  64. package/dist/pages/8.6/SignUpPage.js +0 -136
  65. package/dist/pages/8.6/TaskDetailsPage.d.ts +0 -66
  66. package/dist/pages/8.6/TaskDetailsPage.js +0 -214
  67. package/dist/pages/8.6/TaskPanelPage.d.ts +0 -18
  68. package/dist/pages/8.6/TaskPanelPage.js +0 -54
  69. package/dist/pages/8.6/TaskProcessesPage.d.ts +0 -11
  70. package/dist/pages/8.6/TaskProcessesPage.js +0 -35
  71. package/dist/pages/8.6/UtilitiesPage.d.ts +0 -38
  72. package/dist/pages/8.6/UtilitiesPage.js +0 -328
  73. package/dist/pages/SM-8.6/ConnectorMarketplacePage.d.ts +0 -16
  74. package/dist/pages/SM-8.6/ConnectorMarketplacePage.js +0 -48
  75. package/dist/pages/SM-8.6/ConnectorSettingsPage.d.ts +0 -28
  76. package/dist/pages/SM-8.6/ConnectorSettingsPage.js +0 -82
  77. package/dist/pages/SM-8.6/ConnectorTemplatePage.d.ts +0 -11
  78. package/dist/pages/SM-8.6/ConnectorTemplatePage.js +0 -34
  79. package/dist/pages/SM-8.6/ConsoleHomePage.d.ts +0 -9
  80. package/dist/pages/SM-8.6/ConsoleHomePage.js +0 -22
  81. package/dist/pages/SM-8.6/ConsoleOrganizationPage.d.ts +0 -22
  82. package/dist/pages/SM-8.6/ConsoleOrganizationPage.js +0 -68
  83. package/dist/pages/SM-8.6/FormJsPage.d.ts +0 -13
  84. package/dist/pages/SM-8.6/FormJsPage.js +0 -30
  85. package/dist/pages/SM-8.6/HomePage.d.ts +0 -20
  86. package/dist/pages/SM-8.6/HomePage.js +0 -49
  87. package/dist/pages/SM-8.6/IdentityPage.d.ts +0 -67
  88. package/dist/pages/SM-8.6/IdentityPage.js +0 -266
  89. package/dist/pages/SM-8.6/IdentityTenantPage.d.ts +0 -50
  90. package/dist/pages/SM-8.6/IdentityTenantPage.js +0 -196
  91. package/dist/pages/SM-8.6/IdentityUsersPage.d.ts +0 -90
  92. package/dist/pages/SM-8.6/IdentityUsersPage.js +0 -505
  93. package/dist/pages/SM-8.6/KeycloakAdminPage.d.ts +0 -15
  94. package/dist/pages/SM-8.6/KeycloakAdminPage.js +0 -56
  95. package/dist/pages/SM-8.6/KeycloakLoginPage.d.ts +0 -11
  96. package/dist/pages/SM-8.6/KeycloakLoginPage.js +0 -25
  97. package/dist/pages/SM-8.6/KeycloakUtils.d.ts +0 -15
  98. package/dist/pages/SM-8.6/KeycloakUtils.js +0 -58
  99. package/dist/pages/SM-8.6/LoginPage.d.ts +0 -22
  100. package/dist/pages/SM-8.6/LoginPage.js +0 -123
  101. package/dist/pages/SM-8.6/ModelerCreatePage.d.ts +0 -167
  102. package/dist/pages/SM-8.6/ModelerCreatePage.js +0 -852
  103. package/dist/pages/SM-8.6/ModelerHomePage.d.ts +0 -41
  104. package/dist/pages/SM-8.6/ModelerHomePage.js +0 -150
  105. package/dist/pages/SM-8.6/NavigationPage.d.ts +0 -42
  106. package/dist/pages/SM-8.6/NavigationPage.js +0 -119
  107. package/dist/pages/SM-8.6/OperateHomePage.d.ts +0 -23
  108. package/dist/pages/SM-8.6/OperateHomePage.js +0 -65
  109. package/dist/pages/SM-8.6/OperateProcessInstancePage.d.ts +0 -22
  110. package/dist/pages/SM-8.6/OperateProcessInstancePage.js +0 -139
  111. package/dist/pages/SM-8.6/OperateProcessesPage.d.ts +0 -33
  112. package/dist/pages/SM-8.6/OperateProcessesPage.js +0 -166
  113. package/dist/pages/SM-8.6/OptimizeCollectionsPage.d.ts +0 -15
  114. package/dist/pages/SM-8.6/OptimizeCollectionsPage.js +0 -44
  115. package/dist/pages/SM-8.6/OptimizeDashboardPage.d.ts +0 -14
  116. package/dist/pages/SM-8.6/OptimizeDashboardPage.js +0 -56
  117. package/dist/pages/SM-8.6/OptimizeHomePage.d.ts +0 -19
  118. package/dist/pages/SM-8.6/OptimizeHomePage.js +0 -62
  119. package/dist/pages/SM-8.6/OptimizeReportPage.d.ts +0 -50
  120. package/dist/pages/SM-8.6/OptimizeReportPage.js +0 -162
  121. package/dist/pages/SM-8.6/PlayPage.d.ts +0 -19
  122. package/dist/pages/SM-8.6/PlayPage.js +0 -103
  123. package/dist/pages/SM-8.6/SettingsPage.d.ts +0 -10
  124. package/dist/pages/SM-8.6/SettingsPage.js +0 -20
  125. package/dist/pages/SM-8.6/TaskDetailsPage.d.ts +0 -64
  126. package/dist/pages/SM-8.6/TaskDetailsPage.js +0 -240
  127. package/dist/pages/SM-8.6/TaskPanelPage.d.ts +0 -22
  128. package/dist/pages/SM-8.6/TaskPanelPage.js +0 -68
  129. package/dist/pages/SM-8.6/TaskProcessesPage.d.ts +0 -11
  130. package/dist/pages/SM-8.6/TaskProcessesPage.js +0 -31
  131. package/dist/pages/SM-8.6/UtlitiesPage.d.ts +0 -21
  132. package/dist/pages/SM-8.6/UtlitiesPage.js +0 -207
  133. package/dist/pages/SM-8.6/optimizeReportUtils.d.ts +0 -6
  134. package/dist/pages/SM-8.6/optimizeReportUtils.js +0 -42
  135. package/dist/pages/c8Run-8.6/OperateHomePage.d.ts +0 -20
  136. package/dist/pages/c8Run-8.6/OperateHomePage.js +0 -52
  137. package/dist/pages/c8Run-8.6/OperateLoginPage.d.ts +0 -14
  138. package/dist/pages/c8Run-8.6/OperateLoginPage.js +0 -37
  139. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.d.ts +0 -17
  140. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.js +0 -76
  141. package/dist/pages/c8Run-8.6/OperateProcessesPage.d.ts +0 -20
  142. package/dist/pages/c8Run-8.6/OperateProcessesPage.js +0 -84
  143. package/dist/pages/c8Run-8.6/TaskDetailsPage.d.ts +0 -65
  144. package/dist/pages/c8Run-8.6/TaskDetailsPage.js +0 -219
  145. package/dist/pages/c8Run-8.6/TaskListLoginPage.d.ts +0 -14
  146. package/dist/pages/c8Run-8.6/TaskListLoginPage.js +0 -37
  147. package/dist/pages/c8Run-8.6/TaskPanelPage.d.ts +0 -23
  148. package/dist/pages/c8Run-8.6/TaskPanelPage.js +0 -76
  149. package/dist/pages/c8Run-8.6/UtilitiesPage.d.ts +0 -6
  150. package/dist/pages/c8Run-8.6/UtilitiesPage.js +0 -45
  151. package/dist/tests/8.6/connectors-user-flows.spec.d.ts +0 -1
  152. package/dist/tests/8.6/connectors-user-flows.spec.js +0 -435
  153. package/dist/tests/8.6/console-user-flows.spec.d.ts +0 -1
  154. package/dist/tests/8.6/console-user-flows.spec.js +0 -193
  155. package/dist/tests/8.6/hto-user-flows.spec.d.ts +0 -1
  156. package/dist/tests/8.6/hto-user-flows.spec.js +0 -365
  157. package/dist/tests/8.6/login.spec.d.ts +0 -1
  158. package/dist/tests/8.6/login.spec.js +0 -27
  159. package/dist/tests/8.6/navigation.spec.d.ts +0 -1
  160. package/dist/tests/8.6/navigation.spec.js +0 -57
  161. package/dist/tests/8.6/operate-access-flow.spec.d.ts +0 -1
  162. package/dist/tests/8.6/operate-access-flow.spec.js +0 -57
  163. package/dist/tests/8.6/optimize-user-flows.spec.d.ts +0 -1
  164. package/dist/tests/8.6/optimize-user-flows.spec.js +0 -231
  165. package/dist/tests/8.6/play.spec.d.ts +0 -1
  166. package/dist/tests/8.6/play.spec.js +0 -94
  167. package/dist/tests/8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  168. package/dist/tests/8.6/rba-enabled-user-flows.spec.js +0 -288
  169. package/dist/tests/8.6/smoke-tests.spec.d.ts +0 -1
  170. package/dist/tests/8.6/smoke-tests.spec.js +0 -188
  171. package/dist/tests/8.6/test-setup.spec.d.ts +0 -1
  172. package/dist/tests/8.6/test-setup.spec.js +0 -68
  173. package/dist/tests/8.6/web-modeler-user-flows.spec.d.ts +0 -1
  174. package/dist/tests/8.6/web-modeler-user-flows.spec.js +0 -692
  175. package/dist/tests/SM-8.6/connectors-user-flows.spec.d.ts +0 -1
  176. package/dist/tests/SM-8.6/connectors-user-flows.spec.js +0 -247
  177. package/dist/tests/SM-8.6/console-user-flows.spec.d.ts +0 -1
  178. package/dist/tests/SM-8.6/console-user-flows.spec.js +0 -55
  179. package/dist/tests/SM-8.6/hto-user-flows.spec.d.ts +0 -1
  180. package/dist/tests/SM-8.6/hto-user-flows.spec.js +0 -393
  181. package/dist/tests/SM-8.6/license-key-user-flows.spec.d.ts +0 -1
  182. package/dist/tests/SM-8.6/license-key-user-flows.spec.js +0 -462
  183. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.d.ts +0 -1
  184. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.js +0 -500
  185. package/dist/tests/SM-8.6/optimize-user-flows.spec.d.ts +0 -1
  186. package/dist/tests/SM-8.6/optimize-user-flows.spec.js +0 -186
  187. package/dist/tests/SM-8.6/play.spec.d.ts +0 -1
  188. package/dist/tests/SM-8.6/play.spec.js +0 -87
  189. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  190. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.js +0 -242
  191. package/dist/tests/SM-8.6/smoke-tests.spec.d.ts +0 -1
  192. package/dist/tests/SM-8.6/smoke-tests.spec.js +0 -158
  193. package/dist/tests/SM-8.6/test-setup.spec.d.ts +0 -1
  194. package/dist/tests/SM-8.6/test-setup.spec.js +0 -134
  195. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.d.ts +0 -1
  196. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.js +0 -126
  197. package/dist/tests/c8Run-8.6/api-tests.spec.d.ts +0 -1
  198. package/dist/tests/c8Run-8.6/api-tests.spec.js +0 -67
  199. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.d.ts +0 -1
  200. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.js +0 -119
  201. package/dist/tests/c8Run-8.6/hto-user-flows.spec.d.ts +0 -1
  202. package/dist/tests/c8Run-8.6/hto-user-flows.spec.js +0 -199
  203. package/dist/tests/c8Run-8.6/login.spec.d.ts +0 -1
  204. package/dist/tests/c8Run-8.6/login.spec.js +0 -22
@@ -1,320 +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
- const clickLocatorWithRetry_1 = require("../../utils/assertionHelpers/clickLocatorWithRetry");
7
- const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
8
- class ClusterPage {
9
- defaultClusterType = 'G3-Dev';
10
- page;
11
- createNewClusterButton;
12
- clusterNameInput;
13
- createClusterButton;
14
- clusterCreatingStatusText;
15
- clusterHealthyStatusText;
16
- clusterHealthyIndicatorSelector;
17
- clusterGenerationCompleteMessage;
18
- clustersBreadcrumb;
19
- deleteClusterButton;
20
- confirmDeleteInput;
21
- dangerDeleteButton;
22
- connectorSecretsTab;
23
- createAClusterButton;
24
- clusterVersionOption;
25
- alphaTab;
26
- devTab;
27
- stableTab;
28
- qaGenerationsTab;
29
- gcpRegion;
30
- belgiumRegion;
31
- finlandRegion;
32
- londonRegion;
33
- g3DevClusterType;
34
- clustersList;
35
- cluster;
36
- clusterHealthiness;
37
- clusterLink;
38
- clusterDeleteButton;
39
- dialog;
40
- constructor(page) {
41
- this.page = page;
42
- this.dialog = page.getByRole('dialog');
43
- this.createNewClusterButton = this.createNewClusterButton = page
44
- .getByRole('button', {
45
- name: 'Create new cluster',
46
- })
47
- .or(this.page.getByRole('button', {
48
- name: 'Create cluster',
49
- }));
50
- this.clusterNameInput = page.getByPlaceholder('Enter a name for the cluster');
51
- this.createClusterButton = page.getByRole('button', {
52
- name: 'Create cluster',
53
- });
54
- this.clusterCreatingStatusText = page.getByText('Creating', { exact: true });
55
- this.clusterHealthyStatusText = page.getByText('Healthy', { exact: true });
56
- this.clusterHealthyIndicatorSelector = '[class="healthy healthIndicator"]';
57
- this.clusterGenerationCompleteMessage = page.getByText('Test Cluster is healthy and ready to use');
58
- this.clustersBreadcrumb = page
59
- .getByLabel('Breadcrumb')
60
- .getByText('Clusters', { exact: true });
61
- this.deleteClusterButton = page.getByRole('button', { name: 'Delete' });
62
- this.confirmDeleteInput = page.getByRole('textbox', {
63
- name: 'Type the word DELETE to confirm',
64
- });
65
- this.dangerDeleteButton = page.getByRole('button', { name: 'danger Delete' });
66
- this.connectorSecretsTab = page.getByRole('tab', {
67
- name: 'Connector Secrets',
68
- });
69
- this.createAClusterButton = page.getByRole('button', {
70
- name: 'Create a Cluster',
71
- });
72
- this.clusterVersionOption = page
73
- .locator('label')
74
- .filter({ hasText: `${process.env.CLUSTER_VERSION}` })
75
- .locator('span')
76
- .first();
77
- this.alphaTab = page.getByRole('tab', { name: 'Alpha' });
78
- this.devTab = page.getByRole('tab', { name: 'Internal Dev' });
79
- this.stableTab = page.getByRole('tab', { name: 'Stable' });
80
- this.qaGenerationsTab = page.getByRole('tab', { name: 'QA Generations' });
81
- this.gcpRegion = page.getByRole('tab', {
82
- name: 'GCP',
83
- });
84
- this.londonRegion = page.locator('label').filter({
85
- hasText: 'London, Europe (europe-west2)',
86
- });
87
- this.g3DevClusterType = page.locator('label').filter({
88
- hasText: this.defaultClusterType,
89
- });
90
- this.belgiumRegion = page.locator('label').filter({
91
- hasText: 'Chaos, Belgium, Europe (europe-west1)',
92
- });
93
- this.finlandRegion = page.locator('label').filter({
94
- hasText: 'Finland, Europe (europe-north1)',
95
- });
96
- this.clustersList = page
97
- .getByRole('row')
98
- .filter({ hasNotText: 'Generation' }); //Filter out header row
99
- this.cluster = (clusterName) => this.clustersList.filter({ hasText: clusterName });
100
- this.clusterHealthiness = (clusterName) => this.cluster(clusterName).getByText(`Healthy`, {
101
- exact: true,
102
- });
103
- this.clusterLink = (clusterName) => this.cluster(clusterName).getByRole('link', {
104
- name: clusterName,
105
- });
106
- this.clusterDeleteButton = (clusterName) => this.cluster(clusterName).getByRole('button', { name: 'Delete' });
107
- }
108
- async clickClusterBanner() {
109
- await this.page
110
- .getByRole('banner')
111
- .getByRole('link', { name: 'Clusters' })
112
- .click({ timeout: 60000 });
113
- }
114
- async deleteCluster(name) {
115
- const clusterInstance = this.cluster(name).first();
116
- if ((await clusterInstance.count()) <= 0) {
117
- console.log(`No clusters found with name ${name}, skipping deletion.`);
118
- return;
119
- }
120
- while ((await this.clusterDeleteButton(name).count()) > 0) {
121
- const deleteButton = this.clusterDeleteButton(name).nth(0);
122
- if (await deleteButton.isVisible()) {
123
- try {
124
- await deleteButton.click({ force: true, timeout: 60000 });
125
- }
126
- catch (error) {
127
- await this.clickClusterBanner();
128
- await (0, test_1.expect)(deleteButton).toBeVisible({ timeout: 60000 });
129
- await deleteButton.click({ force: true, timeout: 60000 });
130
- }
131
- await this.confirmDeleteInput.click({ force: true, timeout: 60000 });
132
- await this.confirmDeleteInput.fill('DELETE', { timeout: 60000 });
133
- const dangerDeleteButtons = await this.dangerDeleteButton.all();
134
- const lastDangerDeleteButton = dangerDeleteButtons[dangerDeleteButtons.length - 1];
135
- await lastDangerDeleteButton.click();
136
- await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
137
- timeout: 60000,
138
- });
139
- }
140
- }
141
- }
142
- async createClusterIfNotExists(clusterName, region = 'GCP') {
143
- await (0, sleep_1.sleep)(10000);
144
- if ((await this.cluster(clusterName).isVisible({ timeout: 20000 })) &&
145
- (await this.clusterHealthiness(clusterName).isVisible({ timeout: 20000 }))) {
146
- console.log(`${clusterName} exists and is healthy.`);
147
- }
148
- else {
149
- await this.createCluster(clusterName, region);
150
- await this.assertClusterHealthyStatusWithRetry(clusterName, 300000);
151
- }
152
- }
153
- async assertClusterHealthyStatusWithRetry(name, visibilityTimeout = 100000, totalTimeout = 420000) {
154
- await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.clusterHealthiness(name), {
155
- visibilityTimeout: visibilityTimeout,
156
- totalTimeout: totalTimeout,
157
- maxRetries: 5,
158
- preAction: async () => {
159
- await this.page.reload();
160
- await (0, test_1.expect)(this.cluster(name)).toBeVisible({ timeout: 10000 });
161
- },
162
- });
163
- console.log('Cluster is healthy:', name);
164
- }
165
- async clickCreateNewClusterButton() {
166
- await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.createNewClusterButton, {
167
- visibilityTimeout: 20000,
168
- totalTimeout: 80000,
169
- postAction: async () => {
170
- await this.clickClusterBanner();
171
- },
172
- });
173
- }
174
- async clickClusterNameInput() {
175
- await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.clusterNameInput, {
176
- postAction: async () => {
177
- await this.clickClusterBanner();
178
- },
179
- });
180
- }
181
- async fillClusterNameInput(name) {
182
- await this.clusterNameInput.fill(name);
183
- }
184
- async clickCreateClusterButton() {
185
- await this.createClusterButton.click();
186
- }
187
- async clickClustersBreadcrumb(clusterName) {
188
- const creatingCheckRegex = new RegExp(`${clusterName}.*?Creatingdev`);
189
- const healthyCheckRegex = new RegExp(`${clusterName}.*?Healthydev`);
190
- try {
191
- await (0, test_1.expect)(this.clustersBreadcrumb).toBeVisible({ timeout: 60000 });
192
- await this.clustersBreadcrumb.click({ timeout: 60000 });
193
- await (0, test_1.expect)(this.page.getByText(creatingCheckRegex)).toBeVisible({
194
- timeout: 30000,
195
- });
196
- }
197
- catch (error) {
198
- await this.clickClusterBanner();
199
- await (0, test_1.expect)(this.page
200
- .getByText(creatingCheckRegex)
201
- .first()
202
- .or(this.page.getByText(healthyCheckRegex))).toBeVisible({
203
- timeout: 30000,
204
- });
205
- }
206
- }
207
- async clickConnectorSecretesTab(clusterName) {
208
- await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.connectorSecretsTab, {
209
- postAction: async () => {
210
- await this.clickClusterBanner();
211
- await this.clickClusterLink(clusterName);
212
- },
213
- });
214
- }
215
- async clickClusterLink(name) {
216
- await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.clusterLink(name), {
217
- postAction: async () => {
218
- await this.clickClusterBanner();
219
- },
220
- });
221
- }
222
- async clickClusterTab() {
223
- await Promise.race([
224
- this.page.waitForURL(/\/clusters/, {
225
- timeout: 60000,
226
- }),
227
- this.clickClusterBanner(),
228
- ]);
229
- }
230
- async createCluster(name, region = 'GCP') {
231
- await this.clickClusterTab();
232
- await this.deleteCluster(name);
233
- await this.clickCreateNewClusterButton();
234
- await this.clickClusterNameInput();
235
- await this.fillClusterNameInput(name);
236
- await this.clickClusterType();
237
- await this.clickCloudProvider(region);
238
- await this.selectSubRegion(region);
239
- await this.clickClusterOption();
240
- await this.clickCreateClusterButton();
241
- await this.logClusterCreationInfo(name);
242
- await this.clickClustersBreadcrumb(name);
243
- }
244
- async selectSubRegion(region) {
245
- if (region === 'GCP') {
246
- if (process.env.IS_PROD == 'true') {
247
- await (0, test_1.expect)(this.londonRegion).toBeVisible({ timeout: 15000 });
248
- await this.londonRegion.click();
249
- }
250
- else {
251
- const regions = [
252
- { name: 'Belgium', locator: this.belgiumRegion },
253
- { name: 'Finland', locator: this.finlandRegion },
254
- ];
255
- const chosen = regions[Math.floor(Math.random() * regions.length)];
256
- console.log(`Selected region: ${chosen.name}`);
257
- await (0, test_1.expect)(chosen.locator).toBeVisible({ timeout: 20000 });
258
- await chosen.locator.click();
259
- }
260
- }
261
- }
262
- async logClusterCreationInfo(clusterName) {
263
- try {
264
- await this.page.waitForURL(/\/cluster\/[a-f0-9-]+$/, { timeout: 60000 });
265
- const currentUrl = this.page.url();
266
- const clusterId = this.extractClusterIdFromUrl(currentUrl);
267
- console.log(`🎉 Cluster "${clusterName}" created successfully with ID: ${clusterId || 'Unknown'} at ${new Date().toISOString()}`);
268
- }
269
- catch (error) {
270
- console.warn(`⚠️ Could not extract cluster info for "${clusterName}": ${error}`);
271
- }
272
- }
273
- extractClusterIdFromUrl(url) {
274
- const clusterIdMatch = url.match(/\/cluster\/([a-f0-9-]+)/);
275
- return clusterIdMatch ? clusterIdMatch[1] : null;
276
- }
277
- async clickCloudProvider(region = 'GCP') {
278
- const provider = this.page.getByRole('tab', { name: region });
279
- await (0, test_1.expect)(provider).toBeVisible({ timeout: 60000 });
280
- await provider.click();
281
- }
282
- async clickClusterType() {
283
- if (process.env.IS_PROD !== 'true') {
284
- await (0, test_1.expect)(this.g3DevClusterType).toBeVisible({ timeout: 60000 });
285
- await this.g3DevClusterType.click();
286
- }
287
- }
288
- async clickClusterOption() {
289
- const tabs = [
290
- this.clickStableTab,
291
- this.clickDevTab,
292
- this.clickQAGenerationsTab,
293
- this.clickAlphaTab,
294
- ];
295
- for (const clickTab of tabs) {
296
- try {
297
- await clickTab.call(this);
298
- await this.clusterVersionOption.click({ timeout: 25000 });
299
- return;
300
- }
301
- catch (error) {
302
- console.error('Error clicking tab or cluster version option:', error);
303
- }
304
- }
305
- throw new Error('Failed to find cluster generation');
306
- }
307
- async clickAlphaTab() {
308
- await this.alphaTab.click();
309
- }
310
- async clickDevTab() {
311
- await this.devTab.click();
312
- }
313
- async clickStableTab() {
314
- await this.stableTab.click();
315
- }
316
- async clickQAGenerationsTab() {
317
- await this.qaGenerationsTab.click();
318
- }
319
- }
320
- exports.ClusterPage = ClusterPage;
@@ -1,28 +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 optionsButton: Locator;
9
- readonly deleteConnectorSecretButton: Locator;
10
- readonly deleteConnectorSecretSubButton: Locator;
11
- readonly dialog: Locator;
12
- readonly clusterBanner: Locator;
13
- readonly clusterLink: (name: string) => Locator;
14
- readonly clusterSecretTab: Locator;
15
- readonly confirmDeleteInput: Locator;
16
- constructor(page: Page);
17
- deleteConnectorSecretsIfExist(): Promise<void>;
18
- clickClusterBanner(): Promise<void>;
19
- clickCluster(name: string): Promise<void>;
20
- createNewSecret(cluster: string, key: string, value: string): Promise<void>;
21
- clickCreateNewSecretButton(clusterName: string): Promise<void>;
22
- clickKeyInput(): Promise<void>;
23
- fillKeyInput(key: string): Promise<void>;
24
- clickValueInput(): Promise<void>;
25
- fillValueInput(value: string): Promise<void>;
26
- clickCreateButton(): Promise<void>;
27
- }
28
- export { ClusterSecretsPage };
@@ -1,134 +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
- class ClusterSecretsPage {
6
- page;
7
- createNewSecretButton;
8
- keyInput;
9
- valueInput;
10
- createButton;
11
- optionsButton;
12
- deleteConnectorSecretButton;
13
- deleteConnectorSecretSubButton;
14
- dialog;
15
- clusterBanner;
16
- clusterLink;
17
- clusterSecretTab;
18
- confirmDeleteInput;
19
- constructor(page) {
20
- this.page = page;
21
- this.createNewSecretButton = page.getByRole('button', {
22
- name: 'Create new secret',
23
- });
24
- this.keyInput = page.getByRole('dialog').getByLabel('Key');
25
- this.valueInput = page
26
- .getByRole('dialog')
27
- .getByLabel('Value', { exact: true });
28
- this.createButton = page.getByRole('button', { name: 'Create', exact: true });
29
- this.optionsButton = page
30
- .getByRole('cell', { name: 'Options' })
31
- .getByRole('button');
32
- this.deleteConnectorSecretButton = page.getByRole('menuitem', {
33
- name: 'Delete',
34
- exact: true,
35
- });
36
- this.deleteConnectorSecretSubButton = page.getByRole('button', {
37
- name: 'danger Delete',
38
- });
39
- this.dialog = page.getByRole('dialog');
40
- this.clusterBanner = this.page
41
- .getByRole('banner')
42
- .getByRole('link', { name: 'Clusters' });
43
- this.clusterLink = (name) => page.getByRole('link', { name: name });
44
- this.clusterSecretTab = this.page.getByRole('tab', {
45
- name: 'Connector Secrets',
46
- });
47
- this.confirmDeleteInput = page.getByRole('textbox', {
48
- name: 'Type the word DELETE to confirm',
49
- });
50
- }
51
- async deleteConnectorSecretsIfExist() {
52
- try {
53
- await (0, test_1.expect)(this.optionsButton.first()).toBeVisible({
54
- timeout: 10000,
55
- });
56
- }
57
- catch (error) {
58
- return; //No Connector Secrets found in the list
59
- }
60
- try {
61
- let options = await this.optionsButton.all();
62
- while (options.length > 0) {
63
- const optionButton = options[0];
64
- if (await optionButton.isVisible()) {
65
- await optionButton.click({ timeout: 60000 });
66
- await this.deleteConnectorSecretButton.click({ timeout: 60000 });
67
- await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 40000 });
68
- await this.deleteConnectorSecretSubButton.click();
69
- await (0, test_1.expect)(this.page.getByText('Deleting...')).not.toBeVisible({
70
- timeout: 60000,
71
- });
72
- }
73
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
74
- await sleep(3000);
75
- options = await this.optionsButton.all();
76
- }
77
- await (0, test_1.expect)(this.optionsButton).not.toBeVisible({
78
- timeout: 30000,
79
- });
80
- }
81
- catch (error) {
82
- console.error('Error during Connector Secrets deletion: ', error);
83
- }
84
- }
85
- async clickClusterBanner() {
86
- await (0, test_1.expect)(this.clusterBanner).toBeVisible({ timeout: 30000 });
87
- await this.clusterBanner.click({ timeout: 60000 });
88
- }
89
- async clickCluster(name) {
90
- await (0, test_1.expect)(this.clusterLink(name)).toBeVisible({ timeout: 30000 });
91
- await this.clusterLink(name).click();
92
- }
93
- async createNewSecret(cluster, key, value) {
94
- await this.clickCreateNewSecretButton(cluster);
95
- await this.clickKeyInput();
96
- await this.fillKeyInput(key);
97
- await this.clickValueInput();
98
- await this.fillValueInput(value);
99
- await this.clickCreateButton();
100
- await (0, test_1.expect)(this.page.getByText('Creating...')).not.toBeVisible({
101
- timeout: 60000,
102
- });
103
- }
104
- async clickCreateNewSecretButton(clusterName) {
105
- try {
106
- await (0, test_1.expect)(this.createNewSecretButton).toBeVisible({
107
- timeout: 30000,
108
- });
109
- await this.createNewSecretButton.click({ timeout: 30000 });
110
- }
111
- catch (error) {
112
- await this.clickClusterBanner();
113
- await this.clickCluster(clusterName);
114
- await this.clusterSecretTab.click({ timeout: 30000 });
115
- await this.createNewSecretButton.click({ timeout: 30000 });
116
- }
117
- }
118
- async clickKeyInput() {
119
- await this.keyInput.click();
120
- }
121
- async fillKeyInput(key) {
122
- await this.keyInput.fill(key);
123
- }
124
- async clickValueInput() {
125
- await this.valueInput.click();
126
- }
127
- async fillValueInput(value) {
128
- await this.valueInput.fill(value);
129
- }
130
- async clickCreateButton() {
131
- await this.createButton.click();
132
- }
133
- }
134
- exports.ClusterSecretsPage = ClusterSecretsPage;
@@ -1,19 +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
- readonly cancelButton: Locator;
10
- constructor(page: Page);
11
- clickSearchForConnectorTextbox(): Promise<void>;
12
- fillSearchForConnectorTextbox(connectorName: string): Promise<void>;
13
- clickDownloadToProjectButton(): Promise<void>;
14
- clickSnackbar(): Promise<void>;
15
- clickCloseButton(): Promise<void>;
16
- clickReplaceResourceButton(): Promise<void>;
17
- downloadConnectorToProject(): Promise<void>;
18
- }
19
- export { ConnectorMarketplacePage };
@@ -1,60 +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
- cancelButton;
13
- constructor(page) {
14
- this.page = page;
15
- this.searchForConnectorTextbox = page.getByPlaceholder('Search for a connector');
16
- this.downloadToProjectButton = page
17
- .getByRole('button', { name: 'Download to project' })
18
- .first();
19
- this.snackbar = page.locator('[data-test="snackbar"]');
20
- this.closeButton = page.getByRole('button', { name: 'Close' });
21
- this.replaceResourceButton = page.getByRole('button', {
22
- name: 'Replace resource',
23
- });
24
- this.cancelButton = page.getByRole('button', { name: 'Cancel' });
25
- }
26
- async clickSearchForConnectorTextbox() {
27
- await this.searchForConnectorTextbox.click({ timeout: 60000 });
28
- }
29
- async fillSearchForConnectorTextbox(connectorName) {
30
- await this.searchForConnectorTextbox.fill(connectorName, { timeout: 60000 });
31
- }
32
- async clickDownloadToProjectButton() {
33
- await this.downloadToProjectButton.click({ timeout: 60000 });
34
- }
35
- async clickSnackbar() {
36
- await this.snackbar.click({ timeout: 120000 });
37
- }
38
- async clickCloseButton() {
39
- await this.closeButton.click({ timeout: 60000 });
40
- }
41
- async clickReplaceResourceButton() {
42
- await this.replaceResourceButton.click({ timeout: 60000 });
43
- }
44
- async downloadConnectorToProject() {
45
- await this.clickDownloadToProjectButton();
46
- await (0, test_1.expect)(this.page.getByText('Downloading')).not.toBeVisible({
47
- timeout: 30000,
48
- });
49
- try {
50
- await Promise.race([
51
- this.replaceResourceButton.click({ timeout: 20000 }),
52
- this.cancelButton.click({ timeout: 20000 }),
53
- ]);
54
- }
55
- catch (e) {
56
- return;
57
- }
58
- }
59
- }
60
- exports.ConnectorMarketplacePage = ConnectorMarketplacePage;
@@ -1,38 +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
- readonly authenticationTab: Locator;
13
- readonly outputMappingTab: Locator;
14
- readonly httpEndpointTab: Locator;
15
- readonly correlationTab: Locator;
16
- readonly inputTab: Locator;
17
- constructor(page: Page);
18
- clickUrlInput(): Promise<void>;
19
- fillUrlInput(url: string): Promise<void>;
20
- clickResultExpressionInput(): Promise<void>;
21
- fillResultExpressionInput(resultExpression: string): Promise<void>;
22
- selectAuthenticationType(authentication: string): Promise<void>;
23
- clickUsernameInput(): Promise<void>;
24
- fillUsernameInput(username: string): Promise<void>;
25
- clickPasswordInput(): Promise<void>;
26
- fillPasswordInput(password: string): Promise<void>;
27
- selectMethodType(method: string): Promise<void>;
28
- clickResultVariableInput(): Promise<void>;
29
- fillResultVariableInput(variable: string): Promise<void>;
30
- clickBearerTokenInput(): Promise<void>;
31
- fillBearerTokenInput(token: string): Promise<void>;
32
- clickAuthenticationTab(): Promise<void>;
33
- clickOutputMappingTab(): Promise<void>;
34
- clickHTTPEndpointTab(): Promise<void>;
35
- clickCorrelationTab(): Promise<void>;
36
- clickInputTab(): Promise<void>;
37
- }
38
- export { ConnectorSettingsPage };