@camunda/e2e-test-suite 0.0.459 → 0.0.460

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.
@@ -5,9 +5,9 @@ const _8_8_1 = require("../../fixtures/8.8");
5
5
  const _setup_1 = require("../../test-setup.js");
6
6
  const UtilitiesPage_1 = require("../../pages/8.8/UtilitiesPage");
7
7
  const sleep_1 = require("../../utils/sleep");
8
- const resetSession_1 = require("../../utils/resetSession");
9
8
  const roleAuthorizations_1 = require("../../utils/roleAuthorizations");
10
9
  const expectTextWithRetry_1 = require("../../utils/assertionHelpers/expectTextWithRetry");
10
+ const expectTextWithPagination_1 = require("../../utils/assertionHelpers/expectTextWithPagination");
11
11
  const users_1 = require("../../utils/users");
12
12
  const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
13
13
  const mainUser = (0, users_1.getTestUser)('twentyFifthUser');
@@ -30,7 +30,7 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
30
30
  await (0, _setup_1.captureScreenshot)(page, testInfo);
31
31
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
32
32
  });
33
- (0, _8_8_1.test)('RBA On User Flow - No User Permission', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, browser, loginPage, settingsPage, }, testInfo) => {
33
+ (0, _8_8_1.test)('RBA On User Flow - No User Permission', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, loginPage, settingsPage, }, testInfo) => {
34
34
  _8_8_1.test.slow();
35
35
  const clusterName = clusterNames[testInfo.title];
36
36
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
@@ -68,7 +68,12 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
68
68
  await ocIdentityAuthorizationsPage.createAuthorization((0, roleAuthorizations_1.authorizationAllPermissions)(role));
69
69
  });
70
70
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
71
- await (0, resetSession_1.resetSession)(browser, page);
71
+ await page.context().clearCookies();
72
+ await page.evaluate(() => {
73
+ localStorage.clear();
74
+ sessionStorage.clear();
75
+ });
76
+ await page.goto('/');
72
77
  await loginPage.loginWithTestUser(testUser);
73
78
  });
74
79
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
@@ -101,7 +106,12 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
101
106
  await (0, sleep_1.sleep)(20000);
102
107
  });
103
108
  await _8_8_1.test.step('Login as Test User', async () => {
104
- await (0, resetSession_1.resetSession)(browser, page);
109
+ await page.context().clearCookies();
110
+ await page.evaluate(() => {
111
+ localStorage.clear();
112
+ sessionStorage.clear();
113
+ });
114
+ await page.goto('/');
105
115
  await loginPage.loginWithTestUser(testUser);
106
116
  });
107
117
  await _8_8_1.test.step('Navigate to Tasklist and Make Sure that the Two Deployed Processes Are Accessible', async () => {
@@ -112,8 +122,8 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
112
122
  });
113
123
  await taskPanelPage.clickProcessesTab();
114
124
  await taskProcessesPage.clickpopupContinueButton();
115
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process1);
116
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2);
125
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process1);
126
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process2);
117
127
  });
118
128
  await _8_8_1.test.step('Navigate to Operate and Make Sure that the Two Deployed Processes Are Not Accessible', async () => {
119
129
  await appsPage.clickCamundaApps();
@@ -142,11 +152,11 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
142
152
  timeout: 30000,
143
153
  });
144
154
  await taskPanelPage.clickProcessesTab();
145
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process1, { shouldBeVisible: false });
146
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2, { shouldBeVisible: false });
155
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process1, { shouldBeVisible: false });
156
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process2, { shouldBeVisible: false });
147
157
  });
148
158
  });
149
- (0, _8_8_1.test)('RBA On User Flow - Permission for One Process', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, browser, loginPage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, settingsPage, }, testInfo) => {
159
+ (0, _8_8_1.test)('RBA On User Flow - Permission for One Process', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, loginPage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, settingsPage, }, testInfo) => {
150
160
  _8_8_1.test.slow();
151
161
  const clusterName = clusterNames[testInfo.title];
152
162
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
@@ -191,7 +201,12 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
191
201
  await ocIdentityAuthorizationsPage.createAuthorization((0, roleAuthorizations_1.roleAllAuthorization)(role1));
192
202
  });
193
203
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
194
- await (0, resetSession_1.resetSession)(browser, page);
204
+ await page.context().clearCookies();
205
+ await page.evaluate(() => {
206
+ localStorage.clear();
207
+ sessionStorage.clear();
208
+ });
209
+ await page.goto('/');
195
210
  });
196
211
  await _8_8_1.test.step('Login as Test User', async () => {
197
212
  await loginPage.loginWithTestUser(testUser);
@@ -226,7 +241,12 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
226
241
  await (0, sleep_1.sleep)(20000);
227
242
  });
228
243
  await _8_8_1.test.step('Login as Test User', async () => {
229
- await (0, resetSession_1.resetSession)(browser, page);
244
+ await page.context().clearCookies();
245
+ await page.evaluate(() => {
246
+ localStorage.clear();
247
+ sessionStorage.clear();
248
+ });
249
+ await page.goto('/');
230
250
  await loginPage.loginWithTestUser(testUser);
231
251
  });
232
252
  await _8_8_1.test.step('Navigate to Tasklist and Both Processes Are Accessible', async () => {
@@ -240,8 +260,8 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
240
260
  });
241
261
  await taskPanelPage.clickProcessesTab();
242
262
  await taskProcessesPage.clickpopupContinueButton();
243
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process1);
244
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2);
263
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process1);
264
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process2);
245
265
  });
246
266
  await _8_8_1.test.step('Navigate to Operate and Only First Process Is Accessible', async () => {
247
267
  await appsPage.clickCamundaApps();
@@ -284,10 +304,10 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
284
304
  });
285
305
  await taskPanelPage.clickProcessesTab();
286
306
  await taskProcessesPage.clickpopupContinueButton();
287
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process1, {
307
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process1, {
288
308
  shouldBeVisible: false,
289
309
  });
290
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2, {
310
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process2, {
291
311
  shouldBeVisible: false,
292
312
  });
293
313
  });
@@ -335,8 +355,8 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
335
355
  });
336
356
  await taskPanelPage.clickProcessesTab();
337
357
  await taskProcessesPage.clickpopupContinueButton();
338
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process1);
339
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2);
358
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process1);
359
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process2);
340
360
  });
341
361
  await _8_8_1.test.step('Assert Processes Can Be Started From Tasklist', async () => {
342
362
  await taskPanelPage.clickTasksTab();
@@ -362,7 +382,7 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
362
382
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2);
363
383
  });
364
384
  });
365
- (0, _8_8_1.test)('RBA On User Flow - Permission for Selected Processes Only', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, browser, loginPage, }, testInfo) => {
385
+ (0, _8_8_1.test)('RBA On User Flow - Permission for Selected Processes Only', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, loginPage, }, testInfo) => {
366
386
  _8_8_1.test.slow();
367
387
  const clusterName = clusterNames[testInfo.title];
368
388
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
@@ -402,7 +422,12 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
402
422
  await (0, sleep_1.sleep)(15000);
403
423
  });
404
424
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
405
- await (0, resetSession_1.resetSession)(browser, page);
425
+ await page.context().clearCookies();
426
+ await page.evaluate(() => {
427
+ localStorage.clear();
428
+ sessionStorage.clear();
429
+ });
430
+ await page.goto('/');
406
431
  await loginPage.loginWithTestUser(testUser);
407
432
  });
408
433
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
@@ -430,8 +455,8 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV1', () => {
430
455
  });
431
456
  await taskPanelPage.clickProcessesTab();
432
457
  await taskProcessesPage.clickpopupContinueButton();
433
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process1);
434
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2);
458
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process1);
459
+ await (0, expectTextWithPagination_1.expectTextWithPagination)(page, process2);
435
460
  });
436
461
  await _8_8_1.test.step('Navigate to Operate and Assert Both Processes Are Accessible', async () => {
437
462
  await appsPage.clickCamundaApps();
@@ -5,7 +5,6 @@ const _8_8_1 = require("../../fixtures/8.8");
5
5
  const _setup_1 = require("../../test-setup.js");
6
6
  const UtilitiesPage_1 = require("../../pages/8.8/UtilitiesPage");
7
7
  const sleep_1 = require("../../utils/sleep");
8
- const resetSession_1 = require("../../utils/resetSession");
9
8
  const roleAuthorizations_1 = require("../../utils/roleAuthorizations");
10
9
  const expectTextWithRetry_1 = require("../../utils/assertionHelpers/expectTextWithRetry");
11
10
  const expectTextWithPagination_1 = require("../../utils/assertionHelpers/expectTextWithPagination");
@@ -31,7 +30,7 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
31
30
  await (0, _setup_1.captureScreenshot)(page, testInfo);
32
31
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
33
32
  });
34
- (0, _8_8_1.test)('RBA On User Flow - No User Permission', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, browser, loginPage, settingsPage, }, testInfo) => {
33
+ (0, _8_8_1.test)('RBA On User Flow - No User Permission', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, loginPage, settingsPage, }, testInfo) => {
35
34
  _8_8_1.test.slow();
36
35
  const clusterName = clusterNames[testInfo.title];
37
36
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
@@ -69,7 +68,9 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
69
68
  await ocIdentityAuthorizationsPage.createAuthorization((0, roleAuthorizations_1.authorizationAllPermissions)(role));
70
69
  });
71
70
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
72
- await (0, resetSession_1.resetSession)(browser, page);
71
+ await page.goto('/');
72
+ await settingsPage.clickOpenSettingsButton();
73
+ await settingsPage.clickLogoutButton();
73
74
  await loginPage.loginWithTestUser(testUser);
74
75
  });
75
76
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
@@ -102,7 +103,9 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
102
103
  await (0, sleep_1.sleep)(20000);
103
104
  });
104
105
  await _8_8_1.test.step('Login as Test User', async () => {
105
- await (0, resetSession_1.resetSession)(browser, page);
106
+ await page.goto('/');
107
+ await settingsPage.clickOpenSettingsButton();
108
+ await settingsPage.clickLogoutButton();
106
109
  await loginPage.loginWithTestUser(testUser);
107
110
  });
108
111
  await _8_8_1.test.step('Navigate to Tasklist and Make Sure that the Two Deployed Processes Are Not Accessible', async () => {
@@ -127,7 +130,7 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
127
130
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2, { shouldBeVisible: false });
128
131
  });
129
132
  });
130
- (0, _8_8_1.test)('RBA On User Flow - Permission for One Process', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, browser, loginPage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, settingsPage, }, testInfo) => {
133
+ (0, _8_8_1.test)('RBA On User Flow - Permission for One Process', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, loginPage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, settingsPage, }, testInfo) => {
131
134
  _8_8_1.test.slow();
132
135
  const clusterName = clusterNames[testInfo.title];
133
136
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
@@ -172,7 +175,9 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
172
175
  await ocIdentityAuthorizationsPage.createAuthorization((0, roleAuthorizations_1.roleAllAuthorization)(role1));
173
176
  });
174
177
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
175
- await (0, resetSession_1.resetSession)(browser, page);
178
+ await page.goto('/');
179
+ await settingsPage.clickOpenSettingsButton();
180
+ await settingsPage.clickLogoutButton();
176
181
  });
177
182
  await _8_8_1.test.step('Login as Test User', async () => {
178
183
  await loginPage.loginWithTestUser(testUser);
@@ -207,7 +212,9 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
207
212
  await (0, sleep_1.sleep)(20000);
208
213
  });
209
214
  await _8_8_1.test.step('Login as Test User', async () => {
210
- await (0, resetSession_1.resetSession)(browser, page);
215
+ await page.goto('/');
216
+ await settingsPage.clickOpenSettingsButton();
217
+ await settingsPage.clickLogoutButton();
211
218
  await loginPage.loginWithTestUser(testUser);
212
219
  });
213
220
  await _8_8_1.test.step('Navigate to Tasklist and Only First Process Is Accessible', async () => {
@@ -345,7 +352,7 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
345
352
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, process2);
346
353
  });
347
354
  });
348
- (0, _8_8_1.test)('RBA On User Flow - Permission for Selected Processes Only', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, browser, loginPage, }, testInfo) => {
355
+ (0, _8_8_1.test)('RBA On User Flow - Permission for Selected Processes Only', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, clusterPage, clusterDetailsPage, taskPanelPage, taskProcessesPage, operateHomePage, ocIdentityHomePage, ocIdentityAuthorizationsPage, ocIdentityRolesPage, loginPage, settingsPage, }, testInfo) => {
349
356
  _8_8_1.test.slow();
350
357
  const clusterName = clusterNames[testInfo.title];
351
358
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
@@ -385,7 +392,9 @@ _8_8_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () => {
385
392
  await (0, sleep_1.sleep)(20000);
386
393
  });
387
394
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
388
- await (0, resetSession_1.resetSession)(browser, page);
395
+ await page.goto('/');
396
+ await settingsPage.clickOpenSettingsButton();
397
+ await settingsPage.clickLogoutButton();
389
398
  await loginPage.loginWithTestUser(testUser);
390
399
  });
391
400
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
@@ -17,11 +17,19 @@ const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLoc
17
17
  const users_1 = require("../../utils/users");
18
18
  const sleep_1 = require("../../utils/sleep");
19
19
  const testUser = (0, users_1.getTestUser)('thirteenthUser');
20
+ const CLUSTER_NAME = 'Test Cluster';
21
+ const TIMEOUT = {
22
+ short: 15000,
23
+ medium: 30000,
24
+ navigation: 60000,
25
+ processActive: 300000,
26
+ processComplete: 120000,
27
+ optimizeImport: 120000,
28
+ };
29
+ // Use fixed names for upgrade testing validation, random names for regular testing
30
+ const useFixedNames = process.env.UPGRADE_BASELINE === 'true';
20
31
  _8_8_1.test.describe.configure({ mode: 'parallel' });
21
32
  _8_8_1.test.describe('Smoke Tests', () => {
22
- const clusterName = 'Test Cluster';
23
- // Use fixed names for upgrade testing validation, random names for regular testing
24
- const useFixedNames = process.env.UPGRADE_BASELINE === 'true';
25
33
  _8_8_1.test.beforeEach(async ({ page, loginPage }, testInfo) => {
26
34
  await (0, UtilitiesPage_1.loginWithRetry)(page, loginPage, testUser, (testInfo.workerIndex + 1) * 1000);
27
35
  });
@@ -40,31 +48,33 @@ _8_8_1.test.describe('Smoke Tests', () => {
40
48
  const reportName = useFixedNames
41
49
  ? 'UpgradeTestReport'
42
50
  : await (0, _setup_1.generateRandomStringAsync)(5);
51
+ let appTab;
43
52
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
44
53
  await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
45
- timeout: 30000,
54
+ timeout: TIMEOUT.medium,
46
55
  });
47
56
  await appsPage.clickCamundaApps();
48
57
  await appsPage.clickModeler();
49
58
  await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
50
- timeout: 60000,
59
+ timeout: TIMEOUT.navigation,
51
60
  });
52
61
  });
53
- await _8_8_1.test.step('Create Form To Be Linked For Zeebe User Task', async () => {
62
+ await _8_8_1.test.step('Create form to be linked for Zeebe user task', async () => {
54
63
  await modelerHomePage.clickCrossComponentProjectFolder();
55
64
  await modelerHomePage.createForm(formName);
56
- await formJsPage.deployForm(clusterName);
65
+ await formJsPage.deployForm(CLUSTER_NAME);
57
66
  });
58
- await _8_8_1.test.step('Add A BPMN Template To The Project', async () => {
67
+ await _8_8_1.test.step('Add a BPMN template to the project', async () => {
59
68
  await modelerHomePage.clickProjectBreadcrumb();
60
69
  await modelerHomePage.clickDiagramTypeDropdown();
61
70
  await modelerHomePage.clickBpmnTemplateOption();
62
71
  });
63
- await _8_8_1.test.step('Create BPMN Diagram with Two Zeebe User Tasks and Start Process Instance', async () => {
72
+ await _8_8_1.test.step('Create BPMN diagram with two Zeebe user tasks', async () => {
64
73
  await (0, test_1.expect)(modelerCreatePage.generalPanel).toBeVisible({
65
- timeout: 60000,
74
+ timeout: TIMEOUT.navigation,
66
75
  });
67
76
  await modelerCreatePage.enterDiagramName(processName);
77
+ // Wait for the diagram name change to auto-save before interacting with the canvas
68
78
  await (0, sleep_1.sleep)(15000);
69
79
  await modelerCreatePage.assertDiagramNameSet(processName);
70
80
  await modelerCreatePage.addParallelUserTasks(2, userTaskName);
@@ -75,76 +85,89 @@ _8_8_1.test.describe('Smoke Tests', () => {
75
85
  await modelerCreatePage.clickForm(formName);
76
86
  await modelerCreatePage.clickEmbedButton();
77
87
  await modelerCreatePage.assertFormEmbedded();
78
- await modelerCreatePage.runProcessInstance(clusterName);
79
88
  });
80
- await _8_8_1.test.step('View Process Instance in Operate, complete User Task in Tasklist & assert process complete in Operate and Assert Process has been successfully imported in Optimize', async () => {
89
+ await _8_8_1.test.step('Deploy, start process instance and verify it is active in Operate', async () => {
90
+ await modelerCreatePage.runProcessInstance(CLUSTER_NAME);
81
91
  await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
82
- timeout: 60000,
92
+ timeout: TIMEOUT.navigation,
83
93
  });
84
94
  await modelerCreatePage.clickViewProcessInstanceLink();
85
- const operateTab = await page.waitForEvent('popup', { timeout: 30000 });
86
- const operateTabHomePage = new OperateHomePage_1.OperateHomePage(operateTab);
87
- const operateTabProcessesPage = new OperateProcessesPage_1.OperateProcessesPage(operateTab);
88
- const operateTabProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
89
- const operateTabAppsPage = new AppsPage_1.AppsPage(operateTab);
90
- const operateTabTaskPanelPage = new TaskPanelPage_1.TaskPanelPage(operateTab);
91
- const operateTabTaskDetailsPage = new TaskDetailsPage_1.TaskDetailsPage(operateTab);
92
- await (0, test_1.expect)(operateTabProcessInstancePage.activeIcon).toBeVisible({
93
- timeout: 300000,
95
+ appTab = await page.waitForEvent('popup', { timeout: TIMEOUT.navigation });
96
+ const appTabProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(appTab);
97
+ await (0, test_1.expect)(appTabProcessInstancePage.activeIcon).toBeVisible({
98
+ timeout: TIMEOUT.processActive,
94
99
  });
95
- await operateTabProcessInstancePage.closePopOverIfVisible();
96
- await operateTabAppsPage.clickCamundaApps();
97
- await operateTabAppsPage.clickTasklist(clusterName);
98
- await (0, UtilitiesPage_1.completeTaskWithRetry)(operateTabTaskPanelPage, operateTabTaskDetailsPage, `${userTaskName}1`, 'Medium');
99
- await (0, UtilitiesPage_1.completeTaskWithRetry)(operateTabTaskPanelPage, operateTabTaskDetailsPage, `${userTaskName}2`, 'Medium');
100
- await operateTabTaskPanelPage.filterBy('Completed');
101
- await operateTabTaskPanelPage.openTask(`${userTaskName}1`);
102
- await (0, test_1.expect)(operateTabTaskDetailsPage.detailsInfo.getByText(`${userTaskName}1`)).toBeVisible({ timeout: 30000 });
103
- await operateTabTaskPanelPage.openTask(`${userTaskName}2`);
104
- await (0, test_1.expect)(operateTabTaskDetailsPage.detailsInfo.getByText(`${userTaskName}2`)).toBeVisible({ timeout: 30000 });
105
- await operateTabAppsPage.clickCamundaApps();
106
- await operateTabAppsPage.clickOperate(clusterName);
107
- await operateTabHomePage.clickProcessesTab();
108
- await (0, test_1.expect)(operateTabProcessesPage.processCompletedCheckbox).toBeVisible({ timeout: 15000 });
109
- await operateTabProcessesPage.clickProcessCompletedCheckbox();
110
- await operateTabProcessesPage.clickProcessInstanceLink(processName);
111
- await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTabProcessInstancePage, operateTabProcessInstancePage.completedIcon, 'completed icon in Operate', 60000);
112
- await operateTabAppsPage.clickCamundaApps();
113
- await operateTabAppsPage.clickOptimize(clusterName);
114
- const optimizeTabOptimizeCollectionsPage = new OptimizeCollectionsPage_1.OptimizeCollectionsPage(operateTab);
115
- const optimizeTabOptimizeReportPage = new OptimizeReportPage_1.OptimizeReportPage(operateTab);
116
- const optimizeTabOptimizeHomePage = new OptimizeHomePage_1.OptimizeHomePage(operateTab);
117
- await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateTab, operateTab.getByRole('link', { name: processName }), `process ${processName} in Optimize`, 60000);
118
- await optimizeTabOptimizeHomePage.clickCollectionsLink();
119
- await optimizeTabOptimizeCollectionsPage.clickCreateNewButtonWithRetry();
120
- await optimizeTabOptimizeCollectionsPage.clickReportOption();
121
- await optimizeTabOptimizeReportPage.clickProcessSelectionButton();
122
- await optimizeTabOptimizeReportPage.clickUserTaskProcess(processName);
123
- await (0, test_1.expect)(optimizeTabOptimizeReportPage.versionSelection).toBeVisible({
124
- timeout: 15000,
100
+ await appTabProcessInstancePage.closePopOverIfVisible();
101
+ });
102
+ await _8_8_1.test.step('Navigate to Tasklist and complete both user tasks', async () => {
103
+ const appTabAppsPage = new AppsPage_1.AppsPage(appTab);
104
+ const appTabTaskPanelPage = new TaskPanelPage_1.TaskPanelPage(appTab);
105
+ const appTabTaskDetailsPage = new TaskDetailsPage_1.TaskDetailsPage(appTab);
106
+ await appTabAppsPage.clickCamundaApps();
107
+ await appTabAppsPage.clickTasklist(CLUSTER_NAME);
108
+ await (0, UtilitiesPage_1.completeTaskWithRetry)(appTabTaskPanelPage, appTabTaskDetailsPage, `${userTaskName}1`, 'Medium');
109
+ await (0, UtilitiesPage_1.completeTaskWithRetry)(appTabTaskPanelPage, appTabTaskDetailsPage, `${userTaskName}2`, 'Medium');
110
+ await appTabTaskPanelPage.filterBy('Completed');
111
+ await appTabTaskPanelPage.openTask(`${userTaskName}1`);
112
+ await (0, test_1.expect)(appTabTaskDetailsPage.detailsInfo.getByText(`${userTaskName}1`)).toBeVisible({ timeout: TIMEOUT.medium });
113
+ await appTabTaskPanelPage.openTask(`${userTaskName}2`);
114
+ await (0, test_1.expect)(appTabTaskDetailsPage.detailsInfo.getByText(`${userTaskName}2`)).toBeVisible({ timeout: TIMEOUT.medium });
115
+ });
116
+ await _8_8_1.test.step('Assert process completion in Operate', async () => {
117
+ const appTabAppsPage = new AppsPage_1.AppsPage(appTab);
118
+ const appTabHomePage = new OperateHomePage_1.OperateHomePage(appTab);
119
+ const appTabProcessesPage = new OperateProcessesPage_1.OperateProcessesPage(appTab);
120
+ const appTabProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(appTab);
121
+ await appTabAppsPage.clickCamundaApps();
122
+ await appTabAppsPage.clickOperate(CLUSTER_NAME);
123
+ await appTabHomePage.clickProcessesTab();
124
+ await (0, test_1.expect)(appTabProcessesPage.processCompletedCheckbox).toBeVisible({
125
+ timeout: TIMEOUT.short,
126
+ });
127
+ await appTabProcessesPage.clickProcessCompletedCheckbox();
128
+ await appTabProcessesPage.clickProcessInstanceLink(processName);
129
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(appTabProcessInstancePage, appTabProcessInstancePage.completedIcon, 'completed icon in Operate', TIMEOUT.processComplete);
130
+ });
131
+ await _8_8_1.test.step('Assert process imported in Optimize and create user task report', async () => {
132
+ const appTabAppsPage = new AppsPage_1.AppsPage(appTab);
133
+ const optimizeHomePage = new OptimizeHomePage_1.OptimizeHomePage(appTab);
134
+ const optimizeCollectionsPage = new OptimizeCollectionsPage_1.OptimizeCollectionsPage(appTab);
135
+ const optimizeReportPage = new OptimizeReportPage_1.OptimizeReportPage(appTab);
136
+ await appTabAppsPage.clickCamundaApps();
137
+ await appTabAppsPage.clickOptimize(CLUSTER_NAME);
138
+ await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(appTab, appTab.getByRole('link', { name: processName }), `process ${processName} in Optimize`, TIMEOUT.optimizeImport);
139
+ await optimizeHomePage.clickCollectionsLink();
140
+ await optimizeCollectionsPage.clickCreateNewButtonWithRetry();
141
+ await optimizeCollectionsPage.clickReportOption();
142
+ await optimizeReportPage.clickProcessSelectionButton();
143
+ await optimizeReportPage.clickUserTaskProcess(processName);
144
+ await (0, test_1.expect)(optimizeReportPage.versionSelection).toBeVisible({
145
+ timeout: TIMEOUT.short,
146
+ });
147
+ await optimizeReportPage.clickVersionSelection();
148
+ await optimizeReportPage.clickAlwaysDisplayLatestSelection();
149
+ await optimizeReportPage.clickBlankReportButton();
150
+ await optimizeReportPage.clickCreateReportLink();
151
+ await optimizeReportPage.clickSelectDropdown();
152
+ await optimizeReportPage.clickUserTaskOption();
153
+ await optimizeReportPage.clickHeatMapButton();
154
+ await (0, test_1.expect)(optimizeReportPage.tableOption).toBeVisible({
155
+ timeout: TIMEOUT.short,
125
156
  });
126
- await optimizeTabOptimizeReportPage.clickVersionSelection();
127
- await optimizeTabOptimizeReportPage.clickAlwaysDisplayLatestSelection();
128
- await optimizeTabOptimizeReportPage.clickBlankReportButton();
129
- await optimizeTabOptimizeReportPage.clickCreateReportLink();
130
- await optimizeTabOptimizeReportPage.clickSelectDropdown();
131
- await optimizeTabOptimizeReportPage.clickUserTaskOption();
132
- await optimizeTabOptimizeReportPage.clickHeatMapButton();
133
- await (0, test_1.expect)(optimizeTabOptimizeReportPage.tableOption).toBeVisible({
134
- timeout: 15000,
157
+ await optimizeReportPage.clickTableOption();
158
+ await optimizeReportPage.clickReportName();
159
+ await optimizeReportPage.clearReportName();
160
+ await optimizeReportPage.fillReportName(reportName);
161
+ await optimizeReportPage.clickSaveButton();
162
+ await optimizeHomePage.clickCollectionsLink();
163
+ await (0, test_1.expect)(appTab.getByText(reportName)).toBeVisible({
164
+ timeout: TIMEOUT.medium,
135
165
  });
136
- await optimizeTabOptimizeReportPage.clickTableOption();
137
- await optimizeTabOptimizeReportPage.clickReportName();
138
- await optimizeTabOptimizeReportPage.clearReportName();
139
- await optimizeTabOptimizeReportPage.fillReportName(reportName);
140
- await optimizeTabOptimizeReportPage.clickSaveButton();
141
- await optimizeTabOptimizeHomePage.clickCollectionsLink();
142
- await (0, test_1.expect)(operateTab.getByText(reportName)).toBeVisible({
143
- timeout: 30000,
166
+ await optimizeCollectionsPage.clickMostRecentProcessReport(reportName);
167
+ await optimizeReportPage.waitUntilLocatorIsVisible(optimizeReportPage.oneUserTaskInstance.first(), appTab);
168
+ await (0, test_1.expect)(optimizeReportPage.oneUserTaskInstance).toHaveCount(2, {
169
+ timeout: TIMEOUT.navigation,
144
170
  });
145
- await optimizeTabOptimizeCollectionsPage.clickMostRecentProcessReport(reportName);
146
- await optimizeTabOptimizeReportPage.waitUntilLocatorIsVisible(optimizeTabOptimizeReportPage.oneUserTaskInstance.first(), operateTab);
147
- await (0, test_1.expect)(optimizeTabOptimizeReportPage.oneUserTaskInstance).toHaveCount(2, { timeout: 60000 });
148
171
  });
149
172
  });
150
173
  (0, _8_8_1.test)('Most Common REST Connector User Flow', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
@@ -157,39 +180,36 @@ _8_8_1.test.describe('Smoke Tests', () => {
157
180
  await appsPage.clickCamundaApps();
158
181
  await appsPage.clickModeler();
159
182
  await (0, test_1.expect)(modelerHomePage.modelerPageBanner).toBeVisible({
160
- timeout: 30000,
183
+ timeout: TIMEOUT.navigation,
161
184
  });
162
185
  });
163
- await _8_8_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
186
+ await _8_8_1.test.step('Open Cross Component Test Project and create a BPMN diagram template', async () => {
164
187
  await modelerHomePage.clickCrossComponentProjectFolder();
165
188
  await modelerHomePage.clickDiagramTypeDropdown();
166
189
  await modelerHomePage.clickBpmnTemplateOption();
167
190
  });
168
- await _8_8_1.test.step('Create BPMN Diagram with REST Connector with Basic Auth and Start Process Instance', async () => {
191
+ await _8_8_1.test.step('Create BPMN diagram with REST Connector using Basic Auth and start process', async () => {
169
192
  await (0, UtilitiesPage_1.modelRestConnector)(modelerCreatePage, connectorSettingsPage, processName, 'https://camunda.proxy.beeceptor.com/pre-prod/basic-auth-test', 'basic', '{message:response.body.message}', 'result', { username: 'username', password: 'password' });
170
- await modelerCreatePage.runProcessInstance(clusterName);
193
+ await modelerCreatePage.runProcessInstance(CLUSTER_NAME);
171
194
  });
172
- await _8_8_1.test.step('View Process Instance in Operate, assert it completes and assert result expression', async () => {
195
+ await _8_8_1.test.step('Assert process completes in Operate and verify connector result', async () => {
173
196
  await (0, test_1.expect)(modelerCreatePage.viewProcessInstanceLink).toBeVisible({
174
- timeout: 60000,
197
+ timeout: TIMEOUT.navigation,
175
198
  });
176
199
  await modelerCreatePage.clickViewProcessInstanceLink();
177
- const operateTab = await page.waitForEvent('popup', { timeout: 30000 });
178
- const operateTabHomePage = new OperateHomePage_1.OperateHomePage(operateTab);
179
- const operateTabProcessesPage = new OperateProcessesPage_1.OperateProcessesPage(operateTab);
180
- const operateTabProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
181
- await operateTabHomePage.clickProcessesTab();
182
- await operateTabProcessesPage.clickProcessCompletedCheckbox();
183
- await operateTabProcessesPage.clickProcessInstanceLink(processName);
184
- await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateTabProcessInstancePage.completedIcon, { totalTimeout: 60000, maxRetries: 5 });
185
- await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateTabProcessInstancePage.variablesList, { totalTimeout: 60000, maxRetries: 5 });
186
- await (0, test_1.expect)(operateTabProcessInstancePage.connectorResultVariableName('message')).toBeVisible({
187
- timeout: 15000,
200
+ const operateTab = await page.waitForEvent('popup', {
201
+ timeout: TIMEOUT.navigation,
202
+ });
203
+ const operateProcessInstancePage = new OperateProcessInstancePage_1.OperateProcessInstancePage(operateTab);
204
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.completedIcon, { totalTimeout: TIMEOUT.processComplete, maxRetries: 5 });
205
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, operateProcessInstancePage.variablesList, { totalTimeout: TIMEOUT.navigation, maxRetries: 7 });
206
+ await (0, test_1.expect)(operateProcessInstancePage.connectorResultVariableName('message')).toBeVisible({
207
+ timeout: TIMEOUT.short,
188
208
  });
189
- await (0, test_1.expect)(operateTabProcessInstancePage
209
+ await (0, test_1.expect)(operateProcessInstancePage
190
210
  .connectorResultVariableName('message')
191
211
  .getByText('"Message from Mock!"')).toBeVisible({
192
- timeout: 15000,
212
+ timeout: TIMEOUT.short,
193
213
  });
194
214
  });
195
215
  });
@@ -5,7 +5,6 @@ const _8_8_1 = require("../../fixtures/8.8");
5
5
  const _setup_1 = require("../../test-setup.js");
6
6
  const UtilitiesPage_1 = require("../../pages/8.8/UtilitiesPage");
7
7
  const sleep_1 = require("../../utils/sleep");
8
- const resetSession_1 = require("../../utils/resetSession");
9
8
  const LoginPage_1 = require("../../pages/8.8/LoginPage");
10
9
  const expectTextWithRetry_1 = require("../../utils/assertionHelpers/expectTextWithRetry");
11
10
  const users_1 = require("../../utils/users");
@@ -20,7 +19,7 @@ _8_8_1.test.describe.parallel('UTR Enabled User Flows Test @tasklistV1', () => {
20
19
  await (0, _setup_1.captureScreenshot)(page, testInfo);
21
20
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
22
21
  });
23
- (0, _8_8_1.test)('User Task Restrictions Enabled Flow - Candidate User', async ({ page, modelerHomePage, appsPage, modelerCreatePage, browser, taskPanelPage, }) => {
22
+ (0, _8_8_1.test)('User Task Restrictions Enabled Flow - Candidate User', async ({ page, modelerHomePage, appsPage, modelerCreatePage, taskPanelPage, }) => {
24
23
  _8_8_1.test.slow();
25
24
  const randomName = await (0, _setup_1.generateRandomStringAsync)(3);
26
25
  const processName = 'User_Task_Process_Candidate_User' + randomName;
@@ -64,11 +63,22 @@ _8_8_1.test.describe.parallel('UTR Enabled User Flows Test @tasklistV1', () => {
64
63
  timeout: 60000,
65
64
  });
66
65
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName1);
67
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName2);
66
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, page.getByText(taskName2).first().or(page.getByText(taskName2).last()), {
67
+ totalTimeout: 120000,
68
+ maxRetries: 5,
69
+ postAction: async () => {
70
+ await page.reload();
71
+ },
72
+ });
68
73
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName3, { shouldBeVisible: false });
69
74
  });
70
75
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
71
- await (0, resetSession_1.resetSession)(browser, page);
76
+ await page.context().clearCookies();
77
+ await page.evaluate(() => {
78
+ localStorage.clear();
79
+ sessionStorage.clear();
80
+ });
81
+ await page.goto('/');
72
82
  });
73
83
  await _8_8_1.test.step('Login with Test User and Check Tasks in Tasklist ', async () => {
74
84
  const loginPage = new LoginPage_1.LoginPage(page);
@@ -83,7 +93,7 @@ _8_8_1.test.describe.parallel('UTR Enabled User Flows Test @tasklistV1', () => {
83
93
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName3);
84
94
  });
85
95
  });
86
- (0, _8_8_1.test)('User Task Restrictions Enabled Flow - Candidate Group', async ({ page, modelerHomePage, appsPage, modelerCreatePage, browser, taskPanelPage, ocIdentityGroupsPage, ocIdentityHomePage, }) => {
96
+ (0, _8_8_1.test)('User Task Restrictions Enabled Flow - Candidate Group', async ({ page, modelerHomePage, appsPage, modelerCreatePage, taskPanelPage, ocIdentityGroupsPage, ocIdentityHomePage, }) => {
87
97
  _8_8_1.test.slow();
88
98
  const randomName = await (0, _setup_1.generateRandomStringAsync)(3);
89
99
  const processName = 'User_Task_Process_Candidate_Group' + randomName;
@@ -155,7 +165,12 @@ _8_8_1.test.describe.parallel('UTR Enabled User Flows Test @tasklistV1', () => {
155
165
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName2, { shouldBeVisible: false });
156
166
  });
157
167
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
158
- await (0, resetSession_1.resetSession)(browser, page);
168
+ await page.context().clearCookies();
169
+ await page.evaluate(() => {
170
+ localStorage.clear();
171
+ sessionStorage.clear();
172
+ });
173
+ await page.goto('/');
159
174
  });
160
175
  await _8_8_1.test.step('Login with Test User and Check Tasks in Tasklist ', async () => {
161
176
  const loginPage = new LoginPage_1.LoginPage(page);
@@ -166,10 +181,21 @@ _8_8_1.test.describe.parallel('UTR Enabled User Flows Test @tasklistV1', () => {
166
181
  timeout: 120000,
167
182
  });
168
183
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName1);
169
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName2);
184
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, page.getByText(taskName2).first().or(page.getByText(taskName2).last()), {
185
+ totalTimeout: 120000,
186
+ maxRetries: 5,
187
+ postAction: async () => {
188
+ await page.reload();
189
+ },
190
+ });
170
191
  });
171
192
  await _8_8_1.test.step('Clear cookies and reset session', async () => {
172
- await (0, resetSession_1.resetSession)(browser, page);
193
+ await page.context().clearCookies();
194
+ await page.evaluate(() => {
195
+ localStorage.clear();
196
+ sessionStorage.clear();
197
+ });
198
+ await page.goto('/');
173
199
  });
174
200
  await _8_8_1.test.step('Login with Second Test User and Check Tasks in Tasklist ', async () => {
175
201
  const loginPage = new LoginPage_1.LoginPage(page);
@@ -180,7 +206,13 @@ _8_8_1.test.describe.parallel('UTR Enabled User Flows Test @tasklistV1', () => {
180
206
  timeout: 120000,
181
207
  });
182
208
  await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName1, { shouldBeVisible: false });
183
- await (0, expectTextWithRetry_1.expectTextWithRetry)(page, taskName2);
209
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(page, page.getByText(taskName2).first().or(page.getByText(taskName2).last()), {
210
+ totalTimeout: 120000,
211
+ maxRetries: 5,
212
+ postAction: async () => {
213
+ await page.reload();
214
+ },
215
+ });
184
216
  });
185
217
  });
186
218
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.459",
3
+ "version": "0.0.460",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",