@camunda/e2e-test-suite 0.0.714 → 0.0.715

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/.github/c8_versions.json +0 -3
  2. package/README.md +0 -6
  3. package/dist/utils/clusterVersions.d.ts +0 -1
  4. package/dist/utils/clusterVersions.js +0 -1
  5. package/package.json +1 -1
  6. package/dist/fixtures/8.6.d.ts +0 -63
  7. package/dist/fixtures/8.6.js +0 -162
  8. package/dist/fixtures/SM-8.6.d.ts +0 -63
  9. package/dist/fixtures/SM-8.6.js +0 -149
  10. package/dist/fixtures/c8Run-8.6.d.ts +0 -20
  11. package/dist/fixtures/c8Run-8.6.js +0 -56
  12. package/dist/pages/8.6/AppsPage.d.ts +0 -33
  13. package/dist/pages/8.6/AppsPage.js +0 -337
  14. package/dist/pages/8.6/ClientCredentialsDetailsPage.d.ts +0 -12
  15. package/dist/pages/8.6/ClientCredentialsDetailsPage.js +0 -36
  16. package/dist/pages/8.6/ClusterDetailsPage.d.ts +0 -75
  17. package/dist/pages/8.6/ClusterDetailsPage.js +0 -443
  18. package/dist/pages/8.6/ClusterPage.d.ts +0 -59
  19. package/dist/pages/8.6/ClusterPage.js +0 -320
  20. package/dist/pages/8.6/ClusterSecretsPage.d.ts +0 -28
  21. package/dist/pages/8.6/ClusterSecretsPage.js +0 -134
  22. package/dist/pages/8.6/ConnectorMarketplacePage.d.ts +0 -19
  23. package/dist/pages/8.6/ConnectorMarketplacePage.js +0 -60
  24. package/dist/pages/8.6/ConnectorSettingsPage.d.ts +0 -38
  25. package/dist/pages/8.6/ConnectorSettingsPage.js +0 -133
  26. package/dist/pages/8.6/ConnectorTemplatePage.d.ts +0 -11
  27. package/dist/pages/8.6/ConnectorTemplatePage.js +0 -34
  28. package/dist/pages/8.6/ConsoleOrganizationPage.d.ts +0 -87
  29. package/dist/pages/8.6/ConsoleOrganizationPage.js +0 -495
  30. package/dist/pages/8.6/FormJsPage.d.ts +0 -30
  31. package/dist/pages/8.6/FormJsPage.js +0 -112
  32. package/dist/pages/8.6/HomePage.d.ts +0 -27
  33. package/dist/pages/8.6/HomePage.js +0 -101
  34. package/dist/pages/8.6/LoginPage.d.ts +0 -30
  35. package/dist/pages/8.6/LoginPage.js +0 -85
  36. package/dist/pages/8.6/ModelerCreatePage.d.ts +0 -211
  37. package/dist/pages/8.6/ModelerCreatePage.js +0 -1125
  38. package/dist/pages/8.6/ModelerHomePage.d.ts +0 -48
  39. package/dist/pages/8.6/ModelerHomePage.js +0 -213
  40. package/dist/pages/8.6/ModelerUserInvitePage.d.ts +0 -28
  41. package/dist/pages/8.6/ModelerUserInvitePage.js +0 -106
  42. package/dist/pages/8.6/OperateHomePage.d.ts +0 -21
  43. package/dist/pages/8.6/OperateHomePage.js +0 -57
  44. package/dist/pages/8.6/OperateProcessInstancePage.d.ts +0 -17
  45. package/dist/pages/8.6/OperateProcessInstancePage.js +0 -58
  46. package/dist/pages/8.6/OperateProcessesPage.d.ts +0 -21
  47. package/dist/pages/8.6/OperateProcessesPage.js +0 -77
  48. package/dist/pages/8.6/OptimizeCollectionsPage.d.ts +0 -15
  49. package/dist/pages/8.6/OptimizeCollectionsPage.js +0 -44
  50. package/dist/pages/8.6/OptimizeDashboardPage.d.ts +0 -11
  51. package/dist/pages/8.6/OptimizeDashboardPage.js +0 -65
  52. package/dist/pages/8.6/OptimizeHomePage.d.ts +0 -12
  53. package/dist/pages/8.6/OptimizeHomePage.js +0 -32
  54. package/dist/pages/8.6/OptimizeReportPage.d.ts +0 -48
  55. package/dist/pages/8.6/OptimizeReportPage.js +0 -163
  56. package/dist/pages/8.6/PlayPage.d.ts +0 -14
  57. package/dist/pages/8.6/PlayPage.js +0 -66
  58. package/dist/pages/8.6/SettingsPage.d.ts +0 -10
  59. package/dist/pages/8.6/SettingsPage.js +0 -43
  60. package/dist/pages/8.6/SignUpPage.d.ts +0 -43
  61. package/dist/pages/8.6/SignUpPage.js +0 -136
  62. package/dist/pages/8.6/TaskDetailsPage.d.ts +0 -66
  63. package/dist/pages/8.6/TaskDetailsPage.js +0 -214
  64. package/dist/pages/8.6/TaskPanelPage.d.ts +0 -18
  65. package/dist/pages/8.6/TaskPanelPage.js +0 -54
  66. package/dist/pages/8.6/TaskProcessesPage.d.ts +0 -11
  67. package/dist/pages/8.6/TaskProcessesPage.js +0 -35
  68. package/dist/pages/8.6/UtilitiesPage.d.ts +0 -38
  69. package/dist/pages/8.6/UtilitiesPage.js +0 -328
  70. package/dist/pages/SM-8.6/ConnectorMarketplacePage.d.ts +0 -16
  71. package/dist/pages/SM-8.6/ConnectorMarketplacePage.js +0 -48
  72. package/dist/pages/SM-8.6/ConnectorSettingsPage.d.ts +0 -28
  73. package/dist/pages/SM-8.6/ConnectorSettingsPage.js +0 -82
  74. package/dist/pages/SM-8.6/ConnectorTemplatePage.d.ts +0 -11
  75. package/dist/pages/SM-8.6/ConnectorTemplatePage.js +0 -34
  76. package/dist/pages/SM-8.6/ConsoleHomePage.d.ts +0 -9
  77. package/dist/pages/SM-8.6/ConsoleHomePage.js +0 -22
  78. package/dist/pages/SM-8.6/ConsoleOrganizationPage.d.ts +0 -22
  79. package/dist/pages/SM-8.6/ConsoleOrganizationPage.js +0 -68
  80. package/dist/pages/SM-8.6/FormJsPage.d.ts +0 -13
  81. package/dist/pages/SM-8.6/FormJsPage.js +0 -30
  82. package/dist/pages/SM-8.6/HomePage.d.ts +0 -20
  83. package/dist/pages/SM-8.6/HomePage.js +0 -49
  84. package/dist/pages/SM-8.6/IdentityPage.d.ts +0 -67
  85. package/dist/pages/SM-8.6/IdentityPage.js +0 -266
  86. package/dist/pages/SM-8.6/IdentityTenantPage.d.ts +0 -50
  87. package/dist/pages/SM-8.6/IdentityTenantPage.js +0 -196
  88. package/dist/pages/SM-8.6/IdentityUsersPage.d.ts +0 -90
  89. package/dist/pages/SM-8.6/IdentityUsersPage.js +0 -505
  90. package/dist/pages/SM-8.6/KeycloakAdminPage.d.ts +0 -15
  91. package/dist/pages/SM-8.6/KeycloakAdminPage.js +0 -56
  92. package/dist/pages/SM-8.6/KeycloakLoginPage.d.ts +0 -11
  93. package/dist/pages/SM-8.6/KeycloakLoginPage.js +0 -25
  94. package/dist/pages/SM-8.6/KeycloakUtils.d.ts +0 -15
  95. package/dist/pages/SM-8.6/KeycloakUtils.js +0 -58
  96. package/dist/pages/SM-8.6/LoginPage.d.ts +0 -22
  97. package/dist/pages/SM-8.6/LoginPage.js +0 -123
  98. package/dist/pages/SM-8.6/ModelerCreatePage.d.ts +0 -167
  99. package/dist/pages/SM-8.6/ModelerCreatePage.js +0 -852
  100. package/dist/pages/SM-8.6/ModelerHomePage.d.ts +0 -41
  101. package/dist/pages/SM-8.6/ModelerHomePage.js +0 -150
  102. package/dist/pages/SM-8.6/NavigationPage.d.ts +0 -42
  103. package/dist/pages/SM-8.6/NavigationPage.js +0 -119
  104. package/dist/pages/SM-8.6/OperateHomePage.d.ts +0 -23
  105. package/dist/pages/SM-8.6/OperateHomePage.js +0 -65
  106. package/dist/pages/SM-8.6/OperateProcessInstancePage.d.ts +0 -22
  107. package/dist/pages/SM-8.6/OperateProcessInstancePage.js +0 -139
  108. package/dist/pages/SM-8.6/OperateProcessesPage.d.ts +0 -33
  109. package/dist/pages/SM-8.6/OperateProcessesPage.js +0 -166
  110. package/dist/pages/SM-8.6/OptimizeCollectionsPage.d.ts +0 -15
  111. package/dist/pages/SM-8.6/OptimizeCollectionsPage.js +0 -44
  112. package/dist/pages/SM-8.6/OptimizeDashboardPage.d.ts +0 -14
  113. package/dist/pages/SM-8.6/OptimizeDashboardPage.js +0 -56
  114. package/dist/pages/SM-8.6/OptimizeHomePage.d.ts +0 -19
  115. package/dist/pages/SM-8.6/OptimizeHomePage.js +0 -62
  116. package/dist/pages/SM-8.6/OptimizeReportPage.d.ts +0 -50
  117. package/dist/pages/SM-8.6/OptimizeReportPage.js +0 -162
  118. package/dist/pages/SM-8.6/PlayPage.d.ts +0 -19
  119. package/dist/pages/SM-8.6/PlayPage.js +0 -103
  120. package/dist/pages/SM-8.6/SettingsPage.d.ts +0 -10
  121. package/dist/pages/SM-8.6/SettingsPage.js +0 -20
  122. package/dist/pages/SM-8.6/TaskDetailsPage.d.ts +0 -64
  123. package/dist/pages/SM-8.6/TaskDetailsPage.js +0 -240
  124. package/dist/pages/SM-8.6/TaskPanelPage.d.ts +0 -22
  125. package/dist/pages/SM-8.6/TaskPanelPage.js +0 -68
  126. package/dist/pages/SM-8.6/TaskProcessesPage.d.ts +0 -11
  127. package/dist/pages/SM-8.6/TaskProcessesPage.js +0 -31
  128. package/dist/pages/SM-8.6/UtlitiesPage.d.ts +0 -21
  129. package/dist/pages/SM-8.6/UtlitiesPage.js +0 -207
  130. package/dist/pages/SM-8.6/optimizeReportUtils.d.ts +0 -6
  131. package/dist/pages/SM-8.6/optimizeReportUtils.js +0 -42
  132. package/dist/pages/c8Run-8.6/OperateHomePage.d.ts +0 -20
  133. package/dist/pages/c8Run-8.6/OperateHomePage.js +0 -52
  134. package/dist/pages/c8Run-8.6/OperateLoginPage.d.ts +0 -14
  135. package/dist/pages/c8Run-8.6/OperateLoginPage.js +0 -37
  136. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.d.ts +0 -17
  137. package/dist/pages/c8Run-8.6/OperateProcessInstancePage.js +0 -76
  138. package/dist/pages/c8Run-8.6/OperateProcessesPage.d.ts +0 -20
  139. package/dist/pages/c8Run-8.6/OperateProcessesPage.js +0 -84
  140. package/dist/pages/c8Run-8.6/TaskDetailsPage.d.ts +0 -65
  141. package/dist/pages/c8Run-8.6/TaskDetailsPage.js +0 -219
  142. package/dist/pages/c8Run-8.6/TaskListLoginPage.d.ts +0 -14
  143. package/dist/pages/c8Run-8.6/TaskListLoginPage.js +0 -37
  144. package/dist/pages/c8Run-8.6/TaskPanelPage.d.ts +0 -23
  145. package/dist/pages/c8Run-8.6/TaskPanelPage.js +0 -76
  146. package/dist/pages/c8Run-8.6/UtilitiesPage.d.ts +0 -6
  147. package/dist/pages/c8Run-8.6/UtilitiesPage.js +0 -45
  148. package/dist/tests/8.6/connectors-user-flows.spec.d.ts +0 -1
  149. package/dist/tests/8.6/connectors-user-flows.spec.js +0 -435
  150. package/dist/tests/8.6/console-user-flows.spec.d.ts +0 -1
  151. package/dist/tests/8.6/console-user-flows.spec.js +0 -193
  152. package/dist/tests/8.6/hto-user-flows.spec.d.ts +0 -1
  153. package/dist/tests/8.6/hto-user-flows.spec.js +0 -365
  154. package/dist/tests/8.6/login.spec.d.ts +0 -1
  155. package/dist/tests/8.6/login.spec.js +0 -27
  156. package/dist/tests/8.6/navigation.spec.d.ts +0 -1
  157. package/dist/tests/8.6/navigation.spec.js +0 -57
  158. package/dist/tests/8.6/operate-access-flow.spec.d.ts +0 -1
  159. package/dist/tests/8.6/operate-access-flow.spec.js +0 -57
  160. package/dist/tests/8.6/optimize-user-flows.spec.d.ts +0 -1
  161. package/dist/tests/8.6/optimize-user-flows.spec.js +0 -231
  162. package/dist/tests/8.6/play.spec.d.ts +0 -1
  163. package/dist/tests/8.6/play.spec.js +0 -94
  164. package/dist/tests/8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  165. package/dist/tests/8.6/rba-enabled-user-flows.spec.js +0 -288
  166. package/dist/tests/8.6/smoke-tests.spec.d.ts +0 -1
  167. package/dist/tests/8.6/smoke-tests.spec.js +0 -188
  168. package/dist/tests/8.6/test-setup.spec.d.ts +0 -1
  169. package/dist/tests/8.6/test-setup.spec.js +0 -68
  170. package/dist/tests/8.6/web-modeler-user-flows.spec.d.ts +0 -1
  171. package/dist/tests/8.6/web-modeler-user-flows.spec.js +0 -692
  172. package/dist/tests/SM-8.6/connectors-user-flows.spec.d.ts +0 -1
  173. package/dist/tests/SM-8.6/connectors-user-flows.spec.js +0 -247
  174. package/dist/tests/SM-8.6/console-user-flows.spec.d.ts +0 -1
  175. package/dist/tests/SM-8.6/console-user-flows.spec.js +0 -55
  176. package/dist/tests/SM-8.6/hto-user-flows.spec.d.ts +0 -1
  177. package/dist/tests/SM-8.6/hto-user-flows.spec.js +0 -393
  178. package/dist/tests/SM-8.6/license-key-user-flows.spec.d.ts +0 -1
  179. package/dist/tests/SM-8.6/license-key-user-flows.spec.js +0 -462
  180. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.d.ts +0 -1
  181. package/dist/tests/SM-8.6/mt-enabled-user-flows.spec.js +0 -500
  182. package/dist/tests/SM-8.6/optimize-user-flows.spec.d.ts +0 -1
  183. package/dist/tests/SM-8.6/optimize-user-flows.spec.js +0 -186
  184. package/dist/tests/SM-8.6/play.spec.d.ts +0 -1
  185. package/dist/tests/SM-8.6/play.spec.js +0 -87
  186. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.d.ts +0 -1
  187. package/dist/tests/SM-8.6/rba-enabled-user-flows.spec.js +0 -242
  188. package/dist/tests/SM-8.6/smoke-tests.spec.d.ts +0 -1
  189. package/dist/tests/SM-8.6/smoke-tests.spec.js +0 -158
  190. package/dist/tests/SM-8.6/test-setup.spec.d.ts +0 -1
  191. package/dist/tests/SM-8.6/test-setup.spec.js +0 -134
  192. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.d.ts +0 -1
  193. package/dist/tests/SM-8.6/web-modeler-user-flows.spec.js +0 -126
  194. package/dist/tests/c8Run-8.6/api-tests.spec.d.ts +0 -1
  195. package/dist/tests/c8Run-8.6/api-tests.spec.js +0 -67
  196. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.d.ts +0 -1
  197. package/dist/tests/c8Run-8.6/connectors-user-flows.spec.js +0 -119
  198. package/dist/tests/c8Run-8.6/hto-user-flows.spec.d.ts +0 -1
  199. package/dist/tests/c8Run-8.6/hto-user-flows.spec.js +0 -199
  200. package/dist/tests/c8Run-8.6/login.spec.d.ts +0 -1
  201. package/dist/tests/c8Run-8.6/login.spec.js +0 -22
@@ -1,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 };