@camunda/e2e-test-suite 0.0.713 → 0.0.715

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