@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,48 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ModelerHomePage {
3
- private page;
4
- private defaultFolderName;
5
- readonly modelerPageBanner: Locator;
6
- readonly createNewProjectButton: Locator;
7
- readonly projectNameInput: Locator;
8
- readonly chooseBpmnTemplateButton: Locator;
9
- readonly diagramTypeDropdown: Locator;
10
- readonly bpmnTemplateOption: Locator;
11
- readonly formTemplateOption: Locator;
12
- readonly projectBreadcrumb: Locator;
13
- readonly openOrganizationsButton: Locator;
14
- readonly manageButton: Locator;
15
- readonly rows: Locator;
16
- readonly crossComponentProjectFolder: Locator;
17
- readonly homeBreadcrumb: Locator;
18
- readonly formNameInput: Locator;
19
- readonly uploadFilesButton: Locator;
20
- readonly messageBanner: Locator;
21
- readonly closeButton: Locator;
22
- readonly cancelButton: Locator;
23
- readonly optionsButton: Locator;
24
- readonly dialog: Locator;
25
- readonly formNameBreadcrumb: (formName: string) => Locator;
26
- constructor(page: Page);
27
- clickCreateNewProjectButton(): Promise<void>;
28
- enterNewProjectName(name: string): Promise<void>;
29
- clickChooseBpmnTemplateButton(): Promise<void>;
30
- clickProcessDiagram(name: string): Promise<void>;
31
- clickHomeBreadcrumb(): Promise<void>;
32
- enterFormName(name: string): Promise<void>;
33
- reload(): Promise<void>;
34
- clickDiagramTypeDropdown(): Promise<void>;
35
- clickBpmnTemplateOption(): Promise<void>;
36
- clickFormOption(): Promise<void>;
37
- clickProjectBreadcrumb(): Promise<void>;
38
- clickOpenOrganizationsButton(): Promise<void>;
39
- clickOptionsButton(): Promise<void>;
40
- clickCrossComponentProjectFolder(): Promise<void>;
41
- createForm(formName: string): Promise<void>;
42
- createCrossComponentProjectFolder(): Promise<void>;
43
- clickManageButton(retries?: number): Promise<void>;
44
- clickUploadFilesButton(): Promise<void>;
45
- clickMessageBanner(): Promise<void>;
46
- assertFormBreadcrumbVisible(formName: string): Promise<void>;
47
- }
48
- export { ModelerHomePage };
@@ -1,213 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelerHomePage = 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
- class ModelerHomePage {
8
- page;
9
- defaultFolderName = 'Cross Component Test Project';
10
- modelerPageBanner;
11
- createNewProjectButton;
12
- projectNameInput;
13
- chooseBpmnTemplateButton;
14
- diagramTypeDropdown;
15
- bpmnTemplateOption;
16
- formTemplateOption;
17
- projectBreadcrumb;
18
- openOrganizationsButton;
19
- manageButton;
20
- rows;
21
- crossComponentProjectFolder;
22
- homeBreadcrumb;
23
- formNameInput;
24
- uploadFilesButton;
25
- messageBanner;
26
- closeButton;
27
- cancelButton;
28
- optionsButton;
29
- dialog;
30
- formNameBreadcrumb;
31
- constructor(page) {
32
- this.page = page;
33
- this.modelerPageBanner = page.getByRole('banner', {
34
- name: 'Camunda Modeler',
35
- });
36
- this.formNameInput = page.locator('[data-test="editable-input"]');
37
- this.createNewProjectButton = page.getByRole('button', {
38
- name: 'New project',
39
- });
40
- this.projectNameInput = page.locator('[data-test="editable-input"]');
41
- this.chooseBpmnTemplateButton = page.getByRole('button', {
42
- name: 'Choose BPMN template',
43
- });
44
- this.diagramTypeDropdown = page.locator('[data-test="diagram-dropdown"]');
45
- this.bpmnTemplateOption = page
46
- .locator('[data-test="create-bpmn-diagram"]')
47
- .getByText('BPMN Diagram');
48
- this.formTemplateOption = page
49
- .locator('[data-test="create-form"]')
50
- .getByText('Form');
51
- this.projectBreadcrumb = page.locator('[data-test="breadcrumb-project"]');
52
- this.openOrganizationsButton = page.getByLabel('Open Organizations');
53
- this.manageButton = page.getByRole('menuitem', {
54
- name: 'Manage organization',
55
- });
56
- this.crossComponentProjectFolder = page
57
- .getByText(this.defaultFolderName, { exact: true })
58
- .first();
59
- this.rows = page.getByRole('row');
60
- this.homeBreadcrumb = page.locator('[data-test="breadcrumb-home"]');
61
- this.uploadFilesButton = page.getByRole('menuitem', { name: 'Upload files' });
62
- this.messageBanner = page.locator('[data-test="close-top-banner"]');
63
- this.closeButton = page.getByRole('button', { name: 'Got it - Dismiss' });
64
- this.cancelButton = page.getByRole('button', { name: 'Cancel' });
65
- this.optionsButton = page.getByRole('button', { name: 'Options' });
66
- this.dialog = page.getByRole('dialog');
67
- this.formNameBreadcrumb = (formName) => page.locator('button[data-test="breadcrumb-form"]', {
68
- hasText: formName,
69
- });
70
- }
71
- async clickCreateNewProjectButton() {
72
- await this.createNewProjectButton.click({ timeout: 90000 });
73
- }
74
- async enterNewProjectName(name) {
75
- await this.projectNameInput.click({ timeout: 60000 });
76
- await this.projectNameInput.fill(name);
77
- await this.projectNameInput.press('Enter');
78
- }
79
- async clickChooseBpmnTemplateButton() {
80
- await this.chooseBpmnTemplateButton.click();
81
- }
82
- async clickProcessDiagram(name) {
83
- const process = this.rows.filter({ hasText: name }).getByTitle(name).first();
84
- await (0, test_1.expect)(process).toBeVisible({ timeout: 90000 });
85
- await process.click();
86
- }
87
- async clickHomeBreadcrumb() {
88
- try {
89
- await this.homeBreadcrumb.click();
90
- }
91
- catch (error) {
92
- await this.page.getByText('Home', { exact: true }).first().click();
93
- }
94
- }
95
- async enterFormName(name) {
96
- await this.formNameInput.click({ timeout: 60000 });
97
- await this.formNameInput.fill(name);
98
- await this.formNameInput.press('Enter');
99
- await (0, sleep_1.sleep)(200);
100
- }
101
- async reload() {
102
- await this.page.reload();
103
- }
104
- async clickDiagramTypeDropdown() {
105
- await this.diagramTypeDropdown.click({ timeout: 120000 });
106
- }
107
- async clickBpmnTemplateOption() {
108
- await this.bpmnTemplateOption.click({ timeout: 120000 });
109
- }
110
- async clickFormOption() {
111
- await this.formTemplateOption.click();
112
- }
113
- async clickProjectBreadcrumb() {
114
- await this.projectBreadcrumb.click({ timeout: 60000 });
115
- }
116
- async clickOpenOrganizationsButton() {
117
- await this.openOrganizationsButton.click({ timeout: 60000 });
118
- }
119
- async clickOptionsButton() {
120
- await this.optionsButton.click({ timeout: 60000 });
121
- }
122
- async clickCrossComponentProjectFolder() {
123
- await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.crossComponentProjectFolder, {
124
- visibilityTimeout: 60000,
125
- totalTimeout: 180000,
126
- maxRetries: 5,
127
- preAction: async () => {
128
- // A Carbon modal (`.cds--modal.is-visible`) sometimes covers the
129
- // project folder and intercepts pointer events; clickMessageBanner
130
- // only handles a single banner/close button so it doesn't dismiss
131
- // the modal. Escape it explicitly first — same pattern 8.7 already
132
- // uses for the same symptom.
133
- try {
134
- const blockingModal = this.page.locator('.cds--modal.is-visible');
135
- if ((await blockingModal.count()) > 0) {
136
- await this.page.keyboard.press('Escape');
137
- await (0, sleep_1.sleep)(1000);
138
- }
139
- }
140
- catch {
141
- // No blocking modal to dismiss
142
- }
143
- await this.clickMessageBanner();
144
- },
145
- postAction: async () => {
146
- await this.page.reload();
147
- await this.page.waitForLoadState('domcontentloaded');
148
- },
149
- });
150
- }
151
- async createForm(formName) {
152
- await this.clickDiagramTypeDropdown();
153
- await this.clickFormOption();
154
- await this.enterFormName(formName);
155
- await (0, sleep_1.sleep)(10000);
156
- }
157
- async createCrossComponentProjectFolder() {
158
- await (0, sleep_1.sleep)(15000);
159
- await this.clickMessageBanner();
160
- if (await this.crossComponentProjectFolder.isVisible()) {
161
- console.log('Cross Component Project folder already exists. Clicking into it');
162
- await this.clickCrossComponentProjectFolder();
163
- return;
164
- }
165
- await this.clickCreateNewProjectButton();
166
- await this.enterNewProjectName(this.defaultFolderName);
167
- }
168
- async clickManageButton(retries = 3) {
169
- await this.optionsButton.click({ timeout: 30000 });
170
- for (let i = 0; i < retries; i++) {
171
- try {
172
- await (0, sleep_1.sleep)(5000);
173
- if (await this.manageButton.isVisible({ timeout: 30000 })) {
174
- await this.manageButton.click({ timeout: 10000 });
175
- }
176
- else {
177
- await this.clickOpenOrganizationsButton();
178
- await this.optionsButton.click({ timeout: 30000 });
179
- await (0, test_1.expect)(this.manageButton).toBeVisible({ timeout: 30000 });
180
- await this.manageButton.click({ timeout: 30000 });
181
- }
182
- return;
183
- }
184
- catch (error) {
185
- await (0, sleep_1.sleep)(10000);
186
- }
187
- }
188
- throw new Error(`Failed to click manage button after ${retries} retries`);
189
- }
190
- async clickUploadFilesButton() {
191
- await this.uploadFilesButton.click({ timeout: 60000 });
192
- }
193
- async clickMessageBanner() {
194
- try {
195
- const button = this.messageBanner
196
- .or(this.closeButton)
197
- .or(this.cancelButton)
198
- .first();
199
- await (0, test_1.expect)(button).toBeVisible({ timeout: 15000 });
200
- await button.click();
201
- await (0, test_1.expect)(this.dialog).not.toBeVisible();
202
- }
203
- catch {
204
- console.log('No banner or close button found to click');
205
- }
206
- }
207
- async assertFormBreadcrumbVisible(formName) {
208
- await (0, test_1.expect)(this.formNameBreadcrumb(formName)).toBeVisible({
209
- timeout: 120000,
210
- });
211
- }
212
- }
213
- exports.ModelerHomePage = ModelerHomePage;
@@ -1,28 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class ModelerUserInvitePage {
3
- private page;
4
- readonly buttonAddUser: Locator;
5
- readonly inputFieldUserEmailAddress: Locator;
6
- readonly buttonSendInvitation: Locator;
7
- readonly pendingInviteText: Locator;
8
- readonly settings: Locator;
9
- readonly logout: Locator;
10
- readonly buttonSkipCustomization: Locator;
11
- readonly buttonCloseHelpCentre: Locator;
12
- readonly collaboratorName: Locator;
13
- readonly collaboratorEmail: (email: string) => Locator;
14
- constructor(page: Page);
15
- clickAddUser(): Promise<void>;
16
- clickUserEmailInput(): Promise<void>;
17
- fillUserEmailInput(emailAddress: string): Promise<void>;
18
- clickSendInviteButton(): Promise<void>;
19
- checkPendingInviteText(email: string): Promise<void>;
20
- inviteNewUser(email: string): Promise<void>;
21
- fillNewUserWithRetry(email: string): Promise<void>;
22
- clickSettings(): Promise<void>;
23
- clickLogout(): Promise<void>;
24
- clickSkipCustomization(): Promise<void>;
25
- clickCloseHelpCenter(): Promise<void>;
26
- verifyCollaboratorName(): Promise<void>;
27
- }
28
- export { ModelerUserInvitePage };
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModelerUserInvitePage = void 0;
4
- const test_1 = require("@playwright/test");
5
- const sleep_1 = require("../../utils/sleep");
6
- class ModelerUserInvitePage {
7
- page;
8
- buttonAddUser;
9
- inputFieldUserEmailAddress;
10
- buttonSendInvitation;
11
- pendingInviteText;
12
- settings;
13
- logout;
14
- buttonSkipCustomization;
15
- buttonCloseHelpCentre;
16
- collaboratorName;
17
- collaboratorEmail;
18
- constructor(page) {
19
- this.page = page;
20
- this.buttonAddUser = page.locator('[data-test="add-collaborator"]');
21
- this.inputFieldUserEmailAddress = page.locator('[data-test="multi-select-input"]');
22
- this.buttonSendInvitation = page.locator('[data-test="invite-email-button"]');
23
- this.pendingInviteText = page.getByText('pending');
24
- this.settings = page.getByLabel('Open Settings');
25
- this.logout = page.getByRole('button', { name: 'Log out' });
26
- this.buttonSkipCustomization = page.getByRole('button', {
27
- name: 'Skip customization',
28
- });
29
- this.buttonCloseHelpCentre = page.getByRole('button', { name: 'Close' });
30
- this.collaboratorName = page.getByText('QA Camunda');
31
- this.collaboratorEmail = (email) => this.page.locator('[data-test="chip"]').filter({ hasText: `${email}` });
32
- }
33
- async clickAddUser() {
34
- await (0, test_1.expect)(this.buttonAddUser).toBeVisible({ timeout: 60000 });
35
- await this.buttonAddUser.click({ timeout: 30000 });
36
- }
37
- async clickUserEmailInput() {
38
- await (0, test_1.expect)(this.inputFieldUserEmailAddress).toBeVisible({
39
- timeout: 60000,
40
- });
41
- await this.inputFieldUserEmailAddress.click();
42
- }
43
- async fillUserEmailInput(emailAddress) {
44
- await this.inputFieldUserEmailAddress.fill(emailAddress);
45
- await (0, test_1.expect)(this.inputFieldUserEmailAddress).toHaveValue(emailAddress);
46
- await this.inputFieldUserEmailAddress.press('Enter');
47
- }
48
- async clickSendInviteButton() {
49
- await (0, test_1.expect)(this.buttonSendInvitation).toBeVisible({ timeout: 60000 });
50
- await this.buttonSendInvitation.click();
51
- }
52
- async checkPendingInviteText(email) {
53
- await (0, test_1.expect)(this.page.getByRole('row').filter({ hasText: `${email}` })).toContainText('pending', {
54
- timeout: 120000,
55
- });
56
- }
57
- async inviteNewUser(email) {
58
- await this.clickAddUser();
59
- await this.clickUserEmailInput();
60
- await this.fillUserEmailInput(email);
61
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
62
- await sleep(8000);
63
- await this.clickSendInviteButton();
64
- }
65
- async fillNewUserWithRetry(email) {
66
- const maxRetries = 3;
67
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
68
- try {
69
- await this.clickUserEmailInput();
70
- await this.fillUserEmailInput(email);
71
- await (0, test_1.expect)(this.collaboratorEmail(email).first()).toBeVisible({
72
- timeout: 20000,
73
- });
74
- return;
75
- }
76
- catch (error) {
77
- console.log(`Attempt ${attempt}: Error filling email input:${email}`, error);
78
- }
79
- if (attempt < maxRetries) {
80
- await this.inputFieldUserEmailAddress.clear();
81
- await (0, sleep_1.sleep)(1000);
82
- }
83
- }
84
- throw new Error(`Failed to filling email input:${email} after ${maxRetries} attempts`);
85
- }
86
- async clickSettings() {
87
- await (0, test_1.expect)(this.settings).toBeVisible({ timeout: 60000 });
88
- await this.settings.click({ timeout: 90000 });
89
- }
90
- async clickLogout() {
91
- await (0, test_1.expect)(this.logout).toBeVisible({ timeout: 60000 });
92
- await this.logout.click({ timeout: 50000 });
93
- }
94
- async clickSkipCustomization() {
95
- await (0, test_1.expect)(this.buttonSkipCustomization).toBeVisible({ timeout: 60000 });
96
- await this.buttonSkipCustomization.click();
97
- }
98
- async clickCloseHelpCenter() {
99
- await (0, test_1.expect)(this.buttonCloseHelpCentre).toBeVisible({ timeout: 60000 });
100
- await this.buttonCloseHelpCentre.click();
101
- }
102
- async verifyCollaboratorName() {
103
- await (0, test_1.expect)(this.collaboratorName).toBeVisible({ timeout: 60000 });
104
- }
105
- }
106
- exports.ModelerUserInvitePage = ModelerUserInvitePage;
@@ -1,21 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class OperateHomePage {
3
- private page;
4
- readonly operateHeader: Locator;
5
- readonly processesTab: Locator;
6
- readonly informationDialog: Locator;
7
- readonly editVariableButton: Locator;
8
- readonly variableValueInput: Locator;
9
- readonly saveVariableButton: Locator;
10
- readonly editVariableSpinner: Locator;
11
- readonly operateBanner: Locator;
12
- constructor(page: Page);
13
- clickProcessesTab(): Promise<void>;
14
- closeInformationDialog(): Promise<void>;
15
- clickEditVariableButton(variableName: string): Promise<void>;
16
- clickVariableValueInput(): Promise<void>;
17
- clearVariableValueInput(): Promise<void>;
18
- fillVariableValueInput(value: string): Promise<void>;
19
- clickSaveVariableButton(): Promise<void>;
20
- }
21
- export { OperateHomePage };
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OperateHomePage = void 0;
4
- const clickLocatorWithRetry_1 = require("../../utils/assertionHelpers/clickLocatorWithRetry");
5
- class OperateHomePage {
6
- page;
7
- operateHeader;
8
- processesTab;
9
- informationDialog;
10
- editVariableButton;
11
- variableValueInput;
12
- saveVariableButton;
13
- editVariableSpinner;
14
- operateBanner;
15
- constructor(page) {
16
- this.page = page;
17
- this.operateHeader = page.getByRole('link', { name: 'Camunda Operate' });
18
- this.processesTab = page.getByRole('link', {
19
- name: 'Processes',
20
- exact: true,
21
- });
22
- this.informationDialog = page.getByRole('button', {
23
- name: 'Close this dialog',
24
- });
25
- this.editVariableButton = page.getByTestId('edit-variable-button');
26
- this.variableValueInput = page.getByTestId('edit-variable-value');
27
- this.saveVariableButton = page.getByLabel('Save variable');
28
- this.editVariableSpinner = page
29
- .getByTestId('variable-operation-spinner')
30
- .locator('circle')
31
- .nth(1);
32
- this.operateBanner = page.getByRole('link', { name: 'Camunda logo Operate' });
33
- }
34
- async clickProcessesTab() {
35
- await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.processesTab);
36
- }
37
- async closeInformationDialog() {
38
- await this.informationDialog.click();
39
- }
40
- async clickEditVariableButton(variableName) {
41
- const editVariableButton = 'Edit variable ' + variableName;
42
- await this.page.getByLabel(editVariableButton).click();
43
- }
44
- async clickVariableValueInput() {
45
- await this.variableValueInput.click();
46
- }
47
- async clearVariableValueInput() {
48
- await this.variableValueInput.clear();
49
- }
50
- async fillVariableValueInput(value) {
51
- await this.variableValueInput.fill(value);
52
- }
53
- async clickSaveVariableButton() {
54
- await this.saveVariableButton.click();
55
- }
56
- }
57
- exports.OperateHomePage = OperateHomePage;
@@ -1,17 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class OperateProcessInstancePage {
3
- private page;
4
- readonly diagram: Locator;
5
- readonly completedIcon: Locator;
6
- readonly diagramSpinner: Locator;
7
- readonly activeIcon: Locator;
8
- readonly incidentIcon: Locator;
9
- readonly connectorResultVariableName: (name: string) => Locator;
10
- readonly variablesList: Locator;
11
- readonly messageVariable: Locator;
12
- constructor(page: Page);
13
- connectorResultVariableValue(variableName: string): Promise<Locator>;
14
- reload(): Promise<void>;
15
- assertProcessCompleteStatusWithRetry(timeout?: number, maxRetries?: number): Promise<void>;
16
- }
17
- export { OperateProcessInstancePage };
@@ -1,58 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OperateProcessInstancePage = void 0;
4
- const test_1 = require("@playwright/test");
5
- class OperateProcessInstancePage {
6
- page;
7
- diagram;
8
- completedIcon;
9
- diagramSpinner;
10
- activeIcon;
11
- incidentIcon;
12
- connectorResultVariableName;
13
- variablesList;
14
- messageVariable;
15
- constructor(page) {
16
- this.page = page;
17
- this.diagram = page.getByTestId('diagram');
18
- this.completedIcon = page
19
- .getByTestId('instance-header')
20
- .getByTestId('COMPLETED-icon');
21
- this.diagramSpinner = page.getByTestId('diagram-spinner');
22
- this.activeIcon = page
23
- .getByTestId('instance-header')
24
- .getByTestId('ACTIVE-icon');
25
- this.incidentIcon = page
26
- .getByTestId('instance-header')
27
- .getByTestId('INCIDENT-icon');
28
- this.connectorResultVariableName = (name) => page.getByTestId('variable-' + name);
29
- this.variablesList = page.getByTestId('variables-list');
30
- this.messageVariable = page.getByTestId('variable-message');
31
- }
32
- async connectorResultVariableValue(variableName) {
33
- return await this.page.getByTestId(variableName).locator('td').last();
34
- }
35
- async reload() {
36
- await this.page.reload();
37
- }
38
- async assertProcessCompleteStatusWithRetry(timeout = 60000, maxRetries = 10) {
39
- for (let attempt = 0; attempt < maxRetries; attempt++) {
40
- try {
41
- await this.page.reload();
42
- await (0, test_1.expect)(this.completedIcon).toBeVisible({
43
- timeout: timeout,
44
- });
45
- return;
46
- }
47
- catch (error) {
48
- if (attempt < maxRetries - 1) {
49
- console.warn(`Process complete status attempt ${attempt + 1} failed. Retrying...`);
50
- }
51
- else {
52
- throw new Error(`Assertion failed after ${maxRetries} attempts`);
53
- }
54
- }
55
- }
56
- }
57
- }
58
- exports.OperateProcessInstancePage = OperateProcessInstancePage;
@@ -1,21 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class OperateProcessesPage {
3
- private page;
4
- readonly processResultCount: Locator;
5
- readonly processActiveCheckbox: Locator;
6
- readonly processCompletedCheckbox: Locator;
7
- readonly processRunningInstancesCheckbox: Locator;
8
- readonly processIncidentsCheckbox: Locator;
9
- readonly processPageHeading: Locator;
10
- readonly noMatchingInstancesMessage: Locator;
11
- readonly processFinishedInstancesCheckbox: Locator;
12
- constructor(page: Page);
13
- clickProcessActiveCheckbox(): Promise<void>;
14
- clickProcessCompletedCheckbox(): Promise<void>;
15
- clickProcessIncidentsCheckbox(): Promise<void>;
16
- clickRunningProcessInstancesCheckbox(): Promise<void>;
17
- clickFinishedProcessInstancesCheckbox(): Promise<void>;
18
- reload(): Promise<void>;
19
- clickProcessInstanceLink(processName: string): Promise<void>;
20
- }
21
- export { OperateProcessesPage };
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OperateProcessesPage = void 0;
4
- const test_1 = require("@playwright/test");
5
- class OperateProcessesPage {
6
- page;
7
- processResultCount;
8
- processActiveCheckbox;
9
- processCompletedCheckbox;
10
- processRunningInstancesCheckbox;
11
- processIncidentsCheckbox;
12
- processPageHeading;
13
- noMatchingInstancesMessage;
14
- processFinishedInstancesCheckbox;
15
- constructor(page) {
16
- this.page = page;
17
- this.processResultCount = page.getByTestId('result-count');
18
- this.processActiveCheckbox = page
19
- .locator('label')
20
- .filter({ hasText: 'Active' });
21
- this.processCompletedCheckbox = page
22
- .locator('label')
23
- .filter({ hasText: 'Completed' });
24
- this.processRunningInstancesCheckbox = page
25
- .locator('label')
26
- .filter({ hasText: 'Running Instances' });
27
- this.processIncidentsCheckbox = page
28
- .locator('label')
29
- .filter({ hasText: 'Incidents' });
30
- this.processPageHeading = page
31
- .getByTestId('expanded-panel')
32
- .getByText('Process', { exact: true });
33
- this.noMatchingInstancesMessage = page.getByText('There are no Instances matching this filter set');
34
- this.processFinishedInstancesCheckbox = page
35
- .getByTestId('filter-finished-instances')
36
- .getByRole('checkbox');
37
- }
38
- async clickProcessActiveCheckbox() {
39
- await this.processActiveCheckbox.click();
40
- }
41
- async clickProcessCompletedCheckbox() {
42
- await this.processCompletedCheckbox.click({ timeout: 30000 });
43
- }
44
- async clickProcessIncidentsCheckbox() {
45
- await this.processIncidentsCheckbox.click();
46
- }
47
- async clickRunningProcessInstancesCheckbox() {
48
- await this.processRunningInstancesCheckbox.click();
49
- }
50
- async clickFinishedProcessInstancesCheckbox() {
51
- await this.processFinishedInstancesCheckbox.click();
52
- }
53
- async reload() {
54
- await this.page.reload();
55
- }
56
- async clickProcessInstanceLink(processName) {
57
- const maxRetries = 3;
58
- for (let retries = 0; retries < maxRetries; retries++) {
59
- try {
60
- const process = this.page
61
- .locator('td:right-of(:text("' + processName + '"))')
62
- .first();
63
- await (0, test_1.expect)(process).toBeVisible({ timeout: 60000 });
64
- await process.click({ timeout: 60000 });
65
- await (0, test_1.expect)(this.page.getByText('Instance History').first()).toBeVisible();
66
- return;
67
- }
68
- catch (error) {
69
- console.error(`Click attempt ${retries + 1} failed: ${error}`);
70
- await new Promise((resolve) => setTimeout(resolve, 10000));
71
- await this.page.reload();
72
- }
73
- }
74
- throw new Error(`Failed to click the link after ${maxRetries} attempts.`);
75
- }
76
- }
77
- exports.OperateProcessesPage = OperateProcessesPage;
@@ -1,15 +0,0 @@
1
- import { Page, Locator } from '@playwright/test';
2
- declare class OptimizeCollectionsPage {
3
- private page;
4
- readonly collectionsPageHeader: Locator;
5
- readonly createNewButton: Locator;
6
- readonly reportOption: Locator;
7
- readonly modalCloseButton: Locator;
8
- readonly processReport: Locator;
9
- readonly collectionsLink: Locator;
10
- constructor(page: Page);
11
- clickCreateNewButton(): Promise<void>;
12
- clickReportOption(): Promise<void>;
13
- clickMostRecentProcessReport(reportName: string): Promise<void>;
14
- }
15
- export { OptimizeCollectionsPage };