@camunda/e2e-test-suite 0.0.202 → 0.0.203

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 (120) hide show
  1. package/README.md +1 -0
  2. package/dist/fixtures/8.10.d.ts +75 -0
  3. package/dist/fixtures/8.10.js +187 -0
  4. package/dist/pages/8.10/AppsPage.d.ts +38 -0
  5. package/dist/pages/8.10/AppsPage.js +398 -0
  6. package/dist/pages/8.10/Authorization.d.ts +31 -0
  7. package/dist/pages/8.10/Authorization.js +143 -0
  8. package/dist/pages/8.10/ClientCredentialsDetailsPage.d.ts +12 -0
  9. package/dist/pages/8.10/ClientCredentialsDetailsPage.js +36 -0
  10. package/dist/pages/8.10/ClusterDetailsPage.d.ts +81 -0
  11. package/dist/pages/8.10/ClusterDetailsPage.js +475 -0
  12. package/dist/pages/8.10/ClusterPage.d.ts +63 -0
  13. package/dist/pages/8.10/ClusterPage.js +349 -0
  14. package/dist/pages/8.10/ClusterSecretsPage.d.ts +46 -0
  15. package/dist/pages/8.10/ClusterSecretsPage.js +219 -0
  16. package/dist/pages/8.10/ConnectorMarketplacePage.d.ts +19 -0
  17. package/dist/pages/8.10/ConnectorMarketplacePage.js +56 -0
  18. package/dist/pages/8.10/ConnectorSettingsPage.d.ts +38 -0
  19. package/dist/pages/8.10/ConnectorSettingsPage.js +142 -0
  20. package/dist/pages/8.10/ConnectorTemplatePage.d.ts +11 -0
  21. package/dist/pages/8.10/ConnectorTemplatePage.js +34 -0
  22. package/dist/pages/8.10/ConsoleOrganizationPage.d.ts +76 -0
  23. package/dist/pages/8.10/ConsoleOrganizationPage.js +402 -0
  24. package/dist/pages/8.10/FormJsPage.d.ts +28 -0
  25. package/dist/pages/8.10/FormJsPage.js +85 -0
  26. package/dist/pages/8.10/HomePage.d.ts +27 -0
  27. package/dist/pages/8.10/HomePage.js +88 -0
  28. package/dist/pages/8.10/IdpCreatePage.d.ts +81 -0
  29. package/dist/pages/8.10/IdpCreatePage.js +355 -0
  30. package/dist/pages/8.10/LoginPage.d.ts +42 -0
  31. package/dist/pages/8.10/LoginPage.js +93 -0
  32. package/dist/pages/8.10/ModelerCreatePage.d.ts +224 -0
  33. package/dist/pages/8.10/ModelerCreatePage.js +1166 -0
  34. package/dist/pages/8.10/ModelerHomePage.d.ts +54 -0
  35. package/dist/pages/8.10/ModelerHomePage.js +235 -0
  36. package/dist/pages/8.10/ModelerUserInvitePage.d.ts +29 -0
  37. package/dist/pages/8.10/ModelerUserInvitePage.js +136 -0
  38. package/dist/pages/8.10/OCIdentityAuthorizationsPage.d.ts +11 -0
  39. package/dist/pages/8.10/OCIdentityAuthorizationsPage.js +32 -0
  40. package/dist/pages/8.10/OCIdentityGroupsPage.d.ts +38 -0
  41. package/dist/pages/8.10/OCIdentityGroupsPage.js +166 -0
  42. package/dist/pages/8.10/OCIdentityHomePage.d.ts +18 -0
  43. package/dist/pages/8.10/OCIdentityHomePage.js +57 -0
  44. package/dist/pages/8.10/OCIdentityMappingRulesPage.d.ts +23 -0
  45. package/dist/pages/8.10/OCIdentityMappingRulesPage.js +124 -0
  46. package/dist/pages/8.10/OCIdentityRolesPage.d.ts +40 -0
  47. package/dist/pages/8.10/OCIdentityRolesPage.js +182 -0
  48. package/dist/pages/8.10/OperateHomePage.d.ts +23 -0
  49. package/dist/pages/8.10/OperateHomePage.js +73 -0
  50. package/dist/pages/8.10/OperateProcessInstancePage.d.ts +23 -0
  51. package/dist/pages/8.10/OperateProcessInstancePage.js +94 -0
  52. package/dist/pages/8.10/OperateProcessesPage.d.ts +25 -0
  53. package/dist/pages/8.10/OperateProcessesPage.js +103 -0
  54. package/dist/pages/8.10/OptimizeCollectionsPage.d.ts +17 -0
  55. package/dist/pages/8.10/OptimizeCollectionsPage.js +68 -0
  56. package/dist/pages/8.10/OptimizeDashboardPage.d.ts +11 -0
  57. package/dist/pages/8.10/OptimizeDashboardPage.js +65 -0
  58. package/dist/pages/8.10/OptimizeHomePage.d.ts +13 -0
  59. package/dist/pages/8.10/OptimizeHomePage.js +55 -0
  60. package/dist/pages/8.10/OptimizeReportPage.d.ts +48 -0
  61. package/dist/pages/8.10/OptimizeReportPage.js +159 -0
  62. package/dist/pages/8.10/PlayPage.d.ts +14 -0
  63. package/dist/pages/8.10/PlayPage.js +68 -0
  64. package/dist/pages/8.10/SettingsPage.d.ts +10 -0
  65. package/dist/pages/8.10/SettingsPage.js +43 -0
  66. package/dist/pages/8.10/SignUpPage.d.ts +42 -0
  67. package/dist/pages/8.10/SignUpPage.js +134 -0
  68. package/dist/pages/8.10/TaskDetailsPage.d.ts +75 -0
  69. package/dist/pages/8.10/TaskDetailsPage.js +269 -0
  70. package/dist/pages/8.10/TaskPanelPage.d.ts +21 -0
  71. package/dist/pages/8.10/TaskPanelPage.js +93 -0
  72. package/dist/pages/8.10/TaskProcessesPage.d.ts +13 -0
  73. package/dist/pages/8.10/TaskProcessesPage.js +68 -0
  74. package/dist/pages/8.10/UtilitiesPage.d.ts +47 -0
  75. package/dist/pages/8.10/UtilitiesPage.js +489 -0
  76. package/dist/tests/8.10/access-user-role-management.spec.d.ts +1 -0
  77. package/dist/tests/8.10/access-user-role-management.spec.js +323 -0
  78. package/dist/tests/8.10/agentic-ai-user-flows.spec.d.ts +1 -0
  79. package/dist/tests/8.10/agentic-ai-user-flows.spec.js +185 -0
  80. package/dist/tests/8.10/api-tests-v2.spec.d.ts +1 -0
  81. package/dist/tests/8.10/api-tests-v2.spec.js +20 -0
  82. package/dist/tests/8.10/aws-cluster-user-flows.spec.d.ts +1 -0
  83. package/dist/tests/8.10/aws-cluster-user-flows.spec.js +178 -0
  84. package/dist/tests/8.10/cluster-variables.spec.d.ts +1 -0
  85. package/dist/tests/8.10/cluster-variables.spec.js +70 -0
  86. package/dist/tests/8.10/connectors-user-flows.spec.d.ts +1 -0
  87. package/dist/tests/8.10/connectors-user-flows.spec.js +479 -0
  88. package/dist/tests/8.10/console-user-flows.spec.d.ts +1 -0
  89. package/dist/tests/8.10/console-user-flows.spec.js +187 -0
  90. package/dist/tests/8.10/hto-user-flows.spec.d.ts +1 -0
  91. package/dist/tests/8.10/hto-user-flows.spec.js +471 -0
  92. package/dist/tests/8.10/idp-user-flows.spec.d.ts +1 -0
  93. package/dist/tests/8.10/idp-user-flows.spec.js +214 -0
  94. package/dist/tests/8.10/login-negative-tests.spec.d.ts +1 -0
  95. package/dist/tests/8.10/login-negative-tests.spec.js +29 -0
  96. package/dist/tests/8.10/login.spec.d.ts +1 -0
  97. package/dist/tests/8.10/login.spec.js +26 -0
  98. package/dist/tests/8.10/navigation.spec.d.ts +1 -0
  99. package/dist/tests/8.10/navigation.spec.js +65 -0
  100. package/dist/tests/8.10/operate-access-flow.spec.d.ts +1 -0
  101. package/dist/tests/8.10/operate-access-flow.spec.js +51 -0
  102. package/dist/tests/8.10/optimize-api-tests.spec.d.ts +1 -0
  103. package/dist/tests/8.10/optimize-api-tests.spec.js +268 -0
  104. package/dist/tests/8.10/optimize-user-flows.spec.d.ts +1 -0
  105. package/dist/tests/8.10/optimize-user-flows.spec.js +255 -0
  106. package/dist/tests/8.10/play.spec.d.ts +1 -0
  107. package/dist/tests/8.10/play.spec.js +85 -0
  108. package/dist/tests/8.10/rba-enabled-v1-user-flows.spec.d.ts +1 -0
  109. package/dist/tests/8.10/rba-enabled-v1-user-flows.spec.js +443 -0
  110. package/dist/tests/8.10/rba-enabled-v2-user-flows.spec.d.ts +1 -0
  111. package/dist/tests/8.10/rba-enabled-v2-user-flows.spec.js +446 -0
  112. package/dist/tests/8.10/smoke-tests.spec.d.ts +1 -0
  113. package/dist/tests/8.10/smoke-tests.spec.js +181 -0
  114. package/dist/tests/8.10/test-setup.spec.d.ts +1 -0
  115. package/dist/tests/8.10/test-setup.spec.js +94 -0
  116. package/dist/tests/8.10/utr-enabled-user-flows.spec.d.ts +1 -0
  117. package/dist/tests/8.10/utr-enabled-user-flows.spec.js +182 -0
  118. package/dist/tests/8.10/web-modeler-user-flows.spec.d.ts +1 -0
  119. package/dist/tests/8.10/web-modeler-user-flows.spec.js +544 -0
  120. package/package.json +1 -1
@@ -0,0 +1,544 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_1 = require("@playwright/test");
4
+ const _8_10_1 = require("../../fixtures/8.10");
5
+ const TaskPanelPage_1 = require("../../pages/8.10/TaskPanelPage");
6
+ const TaskDetailsPage_1 = require("../../pages/8.10/TaskDetailsPage");
7
+ const AppsPage_1 = require("../../pages/8.10/AppsPage");
8
+ const OperateProcessInstancePage_1 = require("../../pages/8.10/OperateProcessInstancePage");
9
+ const _setup_1 = require("../../test-setup.js");
10
+ const UtilitiesPage_1 = require("../../pages/8.10/UtilitiesPage");
11
+ const deleteOrg_1 = require("../../utils/deleteOrg");
12
+ const sleep_1 = require("../../utils/sleep");
13
+ const mailSlurpClient_1 = require("../../utils/mailSlurpClient");
14
+ const resetSession_1 = require("../../utils/resetSession");
15
+ const users_1 = require("../../utils/users");
16
+ const testUser = (0, users_1.getTestUser)('eleventhUser');
17
+ _8_10_1.test.describe.configure({ mode: 'parallel' });
18
+ _8_10_1.test.describe('Web Modeler User Flow Tests', () => {
19
+ const clusterName = 'Test Cluster';
20
+ const inboxes = {
21
+ 'Invite New C8 User To Web Modeler Flow @tasklistV2': '',
22
+ 'Invite Existing C8 member to Web Modeler flow @tasklistV2': '',
23
+ };
24
+ _8_10_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
25
+ await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
26
+ });
27
+ _8_10_1.test.afterEach(async ({ page }, testInfo) => {
28
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
29
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
30
+ if (testInfo.title.includes('Invite New C8 User') ||
31
+ testInfo.title.includes('Invite Existing C8 member')) {
32
+ await (0, mailSlurpClient_1.deleteInbox)(inboxes[testInfo.title]);
33
+ }
34
+ });
35
+ (0, _8_10_1.test)('Form.js Integration with User Task and AI Generated Form', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, }) => {
36
+ _8_10_1.test.slow();
37
+ const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
38
+ const processName = 'User_Task_Process_With_AI_Form' + randomString;
39
+ const formName = 'New form' + randomString;
40
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
41
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
42
+ timeout: 120000,
43
+ });
44
+ await appsPage.clickCamundaApps();
45
+ await appsPage.clickModeler();
46
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
47
+ timeout: 180000,
48
+ });
49
+ });
50
+ await _8_10_1.test.step('Open Cross Component Test Project', async () => {
51
+ await modelerHomePage.clickCrossComponentProjectFolder();
52
+ });
53
+ await _8_10_1.test.step('Create an AI Generated Form', async () => {
54
+ await modelerHomePage.createForm(formName);
55
+ await formJsPage.generateAIForm();
56
+ });
57
+ await _8_10_1.test.step('Add A BPMN Template To The Project', async () => {
58
+ await modelerHomePage.clickProjectBreadcrumb();
59
+ await modelerHomePage.clickDiagramTypeDropdown();
60
+ await modelerHomePage.clickBpmnTemplateOption();
61
+ });
62
+ await _8_10_1.test.step('Create BPMN Diagram with a User Task with an embedded AI Generated Form and Start Process Instance', async () => {
63
+ await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName, formName);
64
+ await modelerCreatePage.runProcessInstance(clusterName);
65
+ });
66
+ await _8_10_1.test.step('View Process Instance in Operate and complete User Task in Tasklist', async () => {
67
+ await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
68
+ timeout: 180000,
69
+ });
70
+ await modelerCreatePage.clickViewProcessInstanceLink();
71
+ const operateTab = await page.waitForEvent('popup', { timeout: 60000 });
72
+ const operateTabAppsPage = new AppsPage_1.AppsPage(operateTab);
73
+ const operateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
74
+ const operateTabTaskPanelPage = new TaskPanelPage_1.TaskPanelPage(operateTab);
75
+ const operateTabTaskDetailsPage = new TaskDetailsPage_1.TaskDetailsPage(operateTab);
76
+ await (0, test_1.expect)(operateTabOperateProcessInstancePage.activeIcon).toBeVisible({ timeout: 180000 });
77
+ await operateTabAppsPage.clickCamundaApps();
78
+ await operateTabAppsPage.clickTasklist(clusterName);
79
+ await operateTabTaskPanelPage.openTask(processName);
80
+ await operateTabTaskDetailsPage.clickAssignToMeButton();
81
+ await (0, test_1.expect)(operateTabTaskDetailsPage.assignedToMeText).toBeVisible({
82
+ timeout: 60000,
83
+ });
84
+ await operateTabTaskDetailsPage.fillName('test user');
85
+ await operateTabTaskDetailsPage.checkCheckbox();
86
+ await operateTabTaskDetailsPage.fillDate('11/11/1999');
87
+ await operateTabTaskDetailsPage.fillNumber('10');
88
+ await operateTabTaskDetailsPage.clickCompleteTaskButton();
89
+ });
90
+ });
91
+ (0, _8_10_1.test)('Form.js Integration with AI generated Start form', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, }) => {
92
+ _8_10_1.test.slow();
93
+ const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
94
+ const processName = 'AI-generated-Start-form' + randomString;
95
+ const formName = 'New form' + randomString;
96
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
97
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
98
+ timeout: 120000,
99
+ });
100
+ await appsPage.clickCamundaApps();
101
+ await appsPage.clickModeler();
102
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
103
+ timeout: 120000,
104
+ });
105
+ });
106
+ await _8_10_1.test.step('Open Cross Component Test Project', async () => {
107
+ await modelerHomePage.clickCrossComponentProjectFolder();
108
+ });
109
+ await _8_10_1.test.step('Create an AI Generated Form', async () => {
110
+ await modelerHomePage.createForm(formName);
111
+ await formJsPage.generateAIForm();
112
+ });
113
+ await _8_10_1.test.step('Add A BPMN Template To The Project', async () => {
114
+ await modelerHomePage.clickProjectBreadcrumb();
115
+ await modelerHomePage.clickDiagramTypeDropdown();
116
+ await modelerHomePage.clickBpmnTemplateOption();
117
+ });
118
+ await _8_10_1.test.step('Create BPMN Diagram with a AI generated Start Form and Start Process Instance', async () => {
119
+ await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
120
+ timeout: 90000,
121
+ });
122
+ await modelerCreatePage.enterDiagramName(processName);
123
+ await (0, sleep_1.sleep)(10000);
124
+ await modelerCreatePage.clickEmbedFormButton();
125
+ await modelerCreatePage.clickForm(formName);
126
+ await modelerCreatePage.clickEmbedButton();
127
+ await modelerCreatePage.clickAppendElementButton();
128
+ await modelerCreatePage.clickAppendEndEventButton();
129
+ await (0, sleep_1.sleep)(20000);
130
+ await modelerCreatePage.runProcessInstance(clusterName, '', {
131
+ formName: 'test user',
132
+ checkbox: 'true',
133
+ startDate: '11/11/1999',
134
+ startNumber: '10',
135
+ });
136
+ });
137
+ await _8_10_1.test.step('View Process Instance in Operate and check if process is complete', async () => {
138
+ await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
139
+ timeout: 180000,
140
+ });
141
+ await modelerCreatePage.clickViewProcessInstanceLink();
142
+ const operateTab = await page.waitForEvent('popup', { timeout: 60000 });
143
+ const operateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
144
+ await operateTab.reload();
145
+ await (0, test_1.expect)(operateTabOperateProcessInstancePage.completedIcon).toBeVisible({
146
+ timeout: 1800000,
147
+ });
148
+ });
149
+ });
150
+ //Skipped due to bug 4677:https://github.com/camunda/web-modeler/issues/4677
151
+ _8_10_1.test.skip('Invite New C8 User To Web Modeler Flow @tasklistV2', async ({ page, homePage, appsPage, modelerHomePage, signUpPage, modelerUserInvitePage, loginPage, }, testInfo) => {
152
+ _8_10_1.test.slow();
153
+ const inbox = await (0, mailSlurpClient_1.createInbox)();
154
+ const id = inbox.id;
155
+ const emailAddress = inbox.emailAddress;
156
+ inboxes[testInfo.title] = id;
157
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
158
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
159
+ timeout: 120000,
160
+ });
161
+ await appsPage.clickCamundaApps();
162
+ await appsPage.clickModeler();
163
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
164
+ timeout: 120000,
165
+ });
166
+ });
167
+ await _8_10_1.test.step('Navigate to Cross Component Test Project', async () => {
168
+ await modelerHomePage.clickCrossComponentProjectFolder();
169
+ });
170
+ await _8_10_1.test.step('Add collaborator to Cross Component Test Project', async () => {
171
+ await modelerUserInvitePage.clickAddUser();
172
+ await modelerUserInvitePage.fillNewUserWithRetry(emailAddress);
173
+ await modelerUserInvitePage.clickSendInviteButton();
174
+ await (0, sleep_1.sleep)(30000);
175
+ await modelerUserInvitePage.checkPendingInviteText(emailAddress);
176
+ await modelerUserInvitePage.clickSettings();
177
+ await modelerUserInvitePage.clickLogout();
178
+ await (0, sleep_1.sleep)(60000);
179
+ await (0, UtilitiesPage_1.clickInvitationLinkInEmail)(page, id);
180
+ });
181
+ await _8_10_1.test.step('Signup new collaborator to Cross Component Test Project', async () => {
182
+ await signUpPage.clickFirstNameInput();
183
+ await signUpPage.fillFirstNameInput('QA');
184
+ await signUpPage.clickLastNameInput();
185
+ await signUpPage.fillLastNameInput('Camunda');
186
+ await signUpPage.clickPasswordInputInvitedUser();
187
+ await signUpPage.fillPasswordInputInvitedUser(process.env.C8_PASSWORD);
188
+ await signUpPage.clickSignupButton();
189
+ await (0, sleep_1.sleep)(60000); //a workaround for https://github.com/camunda/web-modeler/issues/4677
190
+ await loginPage.login({
191
+ username: emailAddress,
192
+ password: process.env.C8_PASSWORD,
193
+ });
194
+ await (0, test_1.expect)(page.getByText('Personalize your experience')).toBeVisible({
195
+ timeout: 180000,
196
+ });
197
+ await modelerUserInvitePage.clickSkipCustomization();
198
+ await modelerUserInvitePage.clickCloseHelpCenter();
199
+ await modelerHomePage.clickMessageBanner();
200
+ });
201
+ await _8_10_1.test.step('Navigate to Cross Component Test project as Collaborator', async () => {
202
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(modelerHomePage, modelerHomePage.crossComponentProjectFolder, 'Cross Component Test Project');
203
+ await modelerUserInvitePage.clickSettings();
204
+ await modelerUserInvitePage.clickLogout();
205
+ });
206
+ await _8_10_1.test.step('Login as Project Admin', async () => {
207
+ await (0, test_1.expect)(loginPage.loginMessage).toBeVisible({
208
+ timeout: 60000,
209
+ });
210
+ await page.goto('/');
211
+ await loginPage.login();
212
+ });
213
+ await _8_10_1.test.step('Navigate to Web Modeler as Project Admin', async () => {
214
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
215
+ timeout: 120000,
216
+ });
217
+ await appsPage.clickCamundaApps();
218
+ await appsPage.clickModeler();
219
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
220
+ timeout: 120000,
221
+ });
222
+ });
223
+ await _8_10_1.test.step('Assert Collaborator presence as Project Admin', async () => {
224
+ await modelerHomePage.clickCrossComponentProjectFolder();
225
+ await (0, UtilitiesPage_1.assertPageTextWithRetry)(page, emailAddress, false, 60000);
226
+ });
227
+ });
228
+ //Skipped due to bug 4677: https://github.com/camunda/web-modeler/issues/4677
229
+ _8_10_1.test.skip('Invite Existing C8 member to Web Modeler flow @tasklistV2', async ({ page, loginPage, signUpPage, homePage, modelerUserInvitePage, appsPage, modelerHomePage, settingsPage, }, testInfo) => {
230
+ _8_10_1.test.slow();
231
+ const { id, emailAddress } = await (0, mailSlurpClient_1.createInbox)();
232
+ inboxes[testInfo.title] = id;
233
+ let newOrganizationUuid = '';
234
+ await _8_10_1.test.step('Sign up new user to C8', async () => {
235
+ await signUpPage.signupToC8(emailAddress);
236
+ });
237
+ await _8_10_1.test.step('Log in to C8 as New User', async () => {
238
+ await (0, UtilitiesPage_1.clickInvitationLinkInEmail)(page, id);
239
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
240
+ timeout: 180000,
241
+ });
242
+ await modelerHomePage.clickMessageBanner();
243
+ await settingsPage.clickOpenSettingsButton();
244
+ await settingsPage.clickLogoutButton();
245
+ await loginPage.loginWithoutOrgAssertion({
246
+ username: emailAddress,
247
+ password: process.env.C8_PASSWORD,
248
+ });
249
+ await (0, test_1.expect)(homePage.gettingStartedHeading).toBeVisible({
250
+ timeout: 40000,
251
+ });
252
+ await homePage.clickSkipCustomization();
253
+ });
254
+ await _8_10_1.test.step('Navigate to Console', async () => {
255
+ await appsPage.clickCamundaApps();
256
+ await appsPage.clickConsoleLink();
257
+ await (0, test_1.expect)(homePage.consoleBanner).toBeVisible({
258
+ timeout: 120000,
259
+ });
260
+ newOrganizationUuid = homePage.organizationUuid();
261
+ });
262
+ await _8_10_1.test.step('Login as Project Admin', async () => {
263
+ await settingsPage.clickOpenSettingsButton();
264
+ await settingsPage.clickLogoutButton();
265
+ await loginPage.login();
266
+ });
267
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
268
+ await appsPage.clickCamundaApps();
269
+ await appsPage.clickModeler();
270
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
271
+ timeout: 120000,
272
+ });
273
+ });
274
+ await _8_10_1.test.step('Navigate to Cross Component Test project and Add Collaborator', async () => {
275
+ await modelerHomePage.clickCrossComponentProjectFolder();
276
+ await modelerUserInvitePage.clickAddUser();
277
+ await modelerUserInvitePage.clickUserEmailInput();
278
+ await modelerUserInvitePage.fillUserEmailInput(emailAddress);
279
+ await modelerUserInvitePage.clickSendInviteButton();
280
+ await modelerUserInvitePage.checkPendingInviteText(emailAddress);
281
+ });
282
+ await _8_10_1.test.step('Log out from Project Admin', async () => {
283
+ await settingsPage.clickOpenSettingsButton();
284
+ await settingsPage.clickLogoutButton();
285
+ await (0, sleep_1.sleep)(60000);
286
+ });
287
+ await _8_10_1.test.step('Log in with Second User and Navigate to Cross Component Test project as Collaborator', async () => {
288
+ await (0, UtilitiesPage_1.clickInvitationLinkInEmail)(page, id);
289
+ await (0, sleep_1.sleep)(60000);
290
+ await loginPage.login({
291
+ username: emailAddress,
292
+ password: process.env.C8_PASSWORD,
293
+ });
294
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(modelerHomePage, modelerHomePage.crossComponentProjectFolder, 'Cross Component Test Project', 60000, false, 5);
295
+ });
296
+ await _8_10_1.test.step('Log out from Second User', async () => {
297
+ await settingsPage.clickOpenSettingsButton();
298
+ await settingsPage.clickLogoutButton();
299
+ });
300
+ await _8_10_1.test.step('Navigate to Web Modeler as Project Admin', async () => {
301
+ await loginPage.login();
302
+ await appsPage.clickCamundaApps();
303
+ await appsPage.clickModeler();
304
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
305
+ timeout: 120000,
306
+ });
307
+ // Assert Collaborator presence
308
+ await modelerHomePage.clickCrossComponentProjectFolder();
309
+ await (0, UtilitiesPage_1.assertPageTextWithRetry)(page, emailAddress, false, 60000);
310
+ });
311
+ await _8_10_1.test.step('Delete Organization', async () => {
312
+ await (0, deleteOrg_1.deleteOrganization)(page, newOrganizationUuid);
313
+ });
314
+ });
315
+ (0, _8_10_1.test)('Form.js Integration with User Task and Embedded Form @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, }) => {
316
+ _8_10_1.test.slow();
317
+ const processName = 'User_Task_Process_With_embedded_form' +
318
+ (await (0, _setup_1.generateRandomStringAsync)(3));
319
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
320
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
321
+ timeout: 120000,
322
+ });
323
+ await appsPage.clickCamundaApps();
324
+ await appsPage.clickModeler();
325
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
326
+ timeout: 120000,
327
+ });
328
+ });
329
+ await _8_10_1.test.step('Navigate to Cross Component Test Project', async () => {
330
+ await modelerHomePage.clickCrossComponentProjectFolder();
331
+ });
332
+ await _8_10_1.test.step('Add A BPMN Template To The Project', async () => {
333
+ await modelerHomePage.clickDiagramTypeDropdown();
334
+ await modelerHomePage.clickBpmnTemplateOption();
335
+ });
336
+ await _8_10_1.test.step('Create BPMN Diagram with a embedded form and Start Process Instance', async () => {
337
+ await modelerCreatePage.modelJobWorkerDiagram(processName, true);
338
+ await modelerCreatePage.runProcessInstance(clusterName, '', {}, 'The diagram contains 1 embedded form.');
339
+ });
340
+ await _8_10_1.test.step('View Process Instance in Operate and check if process is complete', async () => {
341
+ await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
342
+ timeout: 180000,
343
+ });
344
+ await modelerCreatePage.clickViewProcessInstanceLink();
345
+ const operateTab = await page.waitForEvent('popup', { timeout: 60000 });
346
+ const operateTabAppsPage = new AppsPage_1.AppsPage(operateTab);
347
+ const operateTabOperateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
348
+ const operateTabTaskPanelPage = new TaskPanelPage_1.TaskPanelPage(operateTab);
349
+ const operateTabTaskDetailsPage = new TaskDetailsPage_1.TaskDetailsPage(operateTab);
350
+ await (0, test_1.expect)(operateTabOperateProcessInstancePage.activeIcon).toBeVisible({ timeout: 180000 });
351
+ await operateTabAppsPage.clickCamundaApps();
352
+ await operateTabAppsPage.clickTasklist(clusterName);
353
+ await operateTabTaskPanelPage.openTask(processName);
354
+ await operateTabTaskDetailsPage.clickAssignToMeButton();
355
+ await (0, test_1.expect)(operateTabTaskDetailsPage.assignedToMeText).toBeVisible({
356
+ timeout: 60000,
357
+ });
358
+ await operateTabTaskDetailsPage.fillName('test user');
359
+ await operateTabTaskDetailsPage.clickCompleteTaskButton();
360
+ });
361
+ });
362
+ (0, _8_10_1.test)('Timer Event User Flow @tasklistV2', async ({ homePage, modelerHomePage, appsPage, modelerCreatePage, operateHomePage, operateProcessInstancePage, operateProcessesPage, }) => {
363
+ const processName = 'Timer_Event_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
364
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
365
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
366
+ timeout: 120000,
367
+ });
368
+ await appsPage.clickCamundaApps();
369
+ await appsPage.clickModeler();
370
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
371
+ timeout: 180000,
372
+ });
373
+ });
374
+ await _8_10_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
375
+ await modelerHomePage.clickCrossComponentProjectFolder();
376
+ await modelerHomePage.clickDiagramTypeDropdown();
377
+ await modelerHomePage.clickBpmnTemplateOption();
378
+ });
379
+ await _8_10_1.test.step('Create BPMN Diagram with Timer Event and Deploy Diagram', async () => {
380
+ await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
381
+ timeout: 120000,
382
+ });
383
+ await modelerCreatePage.enterDiagramName(processName);
384
+ await (0, sleep_1.sleep)(10000);
385
+ await modelerCreatePage.clickAppendElementButton();
386
+ await modelerCreatePage.clickIntermediateBoundaryEvent();
387
+ await modelerCreatePage.clickChangeTypeButton();
388
+ await modelerCreatePage.clickTimerEventOption();
389
+ await modelerCreatePage.clickTimerEventSettings();
390
+ await modelerCreatePage.selectTimerType('timeDuration');
391
+ await modelerCreatePage.clickTimerValue();
392
+ await modelerCreatePage.fillTimerValue('PT90S');
393
+ await modelerCreatePage.clickAppendElementButton();
394
+ await modelerCreatePage.clickAppendEndEventButton();
395
+ await (0, sleep_1.sleep)(10000);
396
+ await modelerCreatePage.runProcessInstance(clusterName);
397
+ });
398
+ await _8_10_1.test.step('Assert Diagram Has Successfully Completed in Operate', async () => {
399
+ await appsPage.clickCamundaApps();
400
+ await appsPage.clickOperate(clusterName);
401
+ await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
402
+ await operateHomePage.clickProcessesTab();
403
+ await operateProcessesPage.clickProcessCompletedCheckbox();
404
+ await operateProcessesPage.clickProcessInstanceLink(processName);
405
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.activeIcon, 'Active icon', 20000, false, 4);
406
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000, false, 5);
407
+ });
408
+ });
409
+ (0, _8_10_1.test)('Public Start Form @tasklistV2', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, browser, taskDetailsPage, }) => {
410
+ _8_10_1.test.slow();
411
+ const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
412
+ const processName = 'User_Task_Process_With_Public_Form' + randomString;
413
+ const formName = 'Public form' + randomString;
414
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
415
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
416
+ timeout: 120000,
417
+ });
418
+ await appsPage.clickCamundaApps();
419
+ await appsPage.clickModeler();
420
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
421
+ timeout: 180000,
422
+ });
423
+ });
424
+ await _8_10_1.test.step('Open Cross Component Test Project', async () => {
425
+ await modelerHomePage.clickCrossComponentProjectFolder();
426
+ });
427
+ await _8_10_1.test.step('Create a Form with a Text Field', async () => {
428
+ await modelerHomePage.clickDiagramTypeDropdown();
429
+ await modelerHomePage.clickFormOption();
430
+ await modelerHomePage.enterFormName(formName);
431
+ await (0, sleep_1.sleep)(10000);
432
+ await formJsPage.dragAndDrop(formJsPage.textField, formJsPage.formEditor);
433
+ await (0, test_1.expect)(formJsPage.textFieldInForm).toBeVisible();
434
+ await (0, sleep_1.sleep)(10000);
435
+ });
436
+ await _8_10_1.test.step('Add A BPMN Template To The Project', async () => {
437
+ await modelerHomePage.clickProjectBreadcrumb();
438
+ await modelerHomePage.clickDiagramTypeDropdown();
439
+ await modelerHomePage.clickBpmnTemplateOption();
440
+ });
441
+ await _8_10_1.test.step('Create BPMN Diagram with a Public Start Form and Deploy the Process', async () => {
442
+ await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
443
+ await modelerCreatePage.linkFormToStartEvent(formName);
444
+ await modelerCreatePage.enablePublicAccessIfDisabled();
445
+ await modelerCreatePage.deployDiagram(clusterName);
446
+ await (0, sleep_1.sleep)(5000);
447
+ });
448
+ let publicFormLink;
449
+ await _8_10_1.test.step('Enable Public Access and Get Publication Link', async () => {
450
+ publicFormLink = await modelerCreatePage.getPublicationLink();
451
+ await (0, sleep_1.sleep)(1000);
452
+ });
453
+ await _8_10_1.test.step('Clear Cookies and Reset Session', async () => {
454
+ await (0, resetSession_1.resetSession)(browser, page);
455
+ });
456
+ await _8_10_1.test.step('Access Public Form After Session Reset', async () => {
457
+ console.log('Navigating to public form:', publicFormLink);
458
+ await page.goto(publicFormLink);
459
+ await (0, test_1.expect)(taskDetailsPage.publicFormsNotSupportedHeading).toBeVisible({
460
+ timeout: 30000,
461
+ });
462
+ });
463
+ });
464
+ (0, _8_10_1.test)('Public Start Form @tasklistV1', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, browser, taskDetailsPage, loginPage, taskPanelPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
465
+ const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
466
+ const processName = 'User_Task_Process_With_Public_Form' + randomString;
467
+ const formName = 'Public form' + randomString;
468
+ await _8_10_1.test.step('Navigate to Web Modeler', async () => {
469
+ await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
470
+ timeout: 120000,
471
+ });
472
+ await appsPage.clickCamundaApps();
473
+ await appsPage.clickModeler();
474
+ await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
475
+ timeout: 180000,
476
+ });
477
+ });
478
+ await _8_10_1.test.step('Open Cross Component Test Project', async () => {
479
+ await modelerHomePage.clickCrossComponentProjectFolder();
480
+ });
481
+ await _8_10_1.test.step('Create a Form with a Text Field', async () => {
482
+ await modelerHomePage.clickDiagramTypeDropdown();
483
+ await modelerHomePage.clickFormOption();
484
+ await modelerHomePage.enterFormName(formName);
485
+ await (0, sleep_1.sleep)(2000);
486
+ await formJsPage.dragAndDrop(formJsPage.textField, formJsPage.formEditor);
487
+ await formJsPage.clickGeneralPropertiesPanel();
488
+ await formJsPage.fillKeyInput('Public_Form_Text_Field');
489
+ });
490
+ await _8_10_1.test.step('Add A BPMN Template To The Project', async () => {
491
+ await modelerHomePage.clickProjectBreadcrumb();
492
+ await modelerHomePage.clickDiagramTypeDropdown();
493
+ await modelerHomePage.clickBpmnTemplateOption();
494
+ });
495
+ await _8_10_1.test.step('Create BPMN Diagram with a Public Start Form and Deploy the Process', async () => {
496
+ await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
497
+ await modelerCreatePage.linkFormToStartEvent(formName);
498
+ await modelerCreatePage.enablePublicAccessIfDisabled();
499
+ await modelerCreatePage.deployDiagram(clusterName);
500
+ await (0, sleep_1.sleep)(5000);
501
+ });
502
+ let publicFormLink;
503
+ await _8_10_1.test.step('Enable Public Access and Get Publication Link', async () => {
504
+ publicFormLink = await modelerCreatePage.getPublicationLink();
505
+ await (0, sleep_1.sleep)(1000);
506
+ });
507
+ await _8_10_1.test.step('Clear Cookies and Reset Session', async () => {
508
+ await (0, resetSession_1.resetSession)(browser, page);
509
+ });
510
+ await _8_10_1.test.step('Access Public Form After Session Reset and Submit the Form', async () => {
511
+ console.log('Navigating to public form:', publicFormLink);
512
+ await page.goto(publicFormLink);
513
+ await (0, test_1.expect)(taskDetailsPage.textInput).toBeVisible({
514
+ timeout: 30000,
515
+ });
516
+ await taskDetailsPage.fillTextInput('Public Form Test Value');
517
+ await taskDetailsPage.clickSubmitButton();
518
+ await (0, test_1.expect)(page.getByRole('heading', { name: 'Success!' })).toBeVisible({
519
+ timeout: 30000,
520
+ });
521
+ });
522
+ await _8_10_1.test.step('Login to Tasklist and Check User Task Has the Correct Input Values and Can Be Completed', async () => {
523
+ await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, 5000);
524
+ await appsPage.clickCamundaApps();
525
+ await appsPage.clickTasklist(clusterName);
526
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, taskPanelPage.taskListPageBanner, 'Tasklist banner');
527
+ await taskPanelPage.openTask(processName);
528
+ await (0, test_1.expect)(page
529
+ .getByRole('row')
530
+ .filter({ hasText: 'Public_Form_Text_Field' })
531
+ .getByText('"Public Form Test Value"')).toBeVisible({ timeout: 30000 });
532
+ await taskDetailsPage.clickAssignToMeButton();
533
+ await taskDetailsPage.clickCompleteTaskButton();
534
+ });
535
+ await _8_10_1.test.step('Assert Process Instance is Completed in Operate', async () => {
536
+ await appsPage.clickCamundaApps();
537
+ await appsPage.clickOperate(clusterName);
538
+ await operateHomePage.clickProcessesTab();
539
+ await operateProcessesPage.clickProcessCompletedCheckbox();
540
+ await operateProcessesPage.clickProcessInstanceLink(processName);
541
+ await operateProcessInstancePage.assertProcessCompleteStatusWithRetry(40000);
542
+ });
543
+ });
544
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.202",
3
+ "version": "0.0.203",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",