@camunda/e2e-test-suite 0.0.1214 → 0.0.1216

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.
@@ -37,9 +37,13 @@ class OptimizeHomePage {
37
37
  .getByRole('link', { name: 'Collections' });
38
38
  this.dashboardLink = page.getByRole('link', { name: 'Dashboards' });
39
39
  this.modalCloseButton = page.locator('button').filter({ hasText: /^Close$/ });
40
- this.optimizeBanner = page.getByRole('link', {
41
- name: 'Camunda logo Optimize',
42
- });
40
+ // Optimize's Design System navigation ("nav V2") renders the logo link as
41
+ // "Camunda Optimize"; the legacy header used "Camunda logo Optimize" and
42
+ // stays available as a fallback, so match either so the banner gate works
43
+ // whichever navigation is served (mirrors OperateHomePage.operateBanner).
44
+ this.optimizeBanner = page
45
+ .getByRole('link', { name: 'Camunda logo Optimize' })
46
+ .or(page.getByRole('link', { name: 'Camunda Optimize' }));
43
47
  this.noPermissionsMessage = page.getByText('default backend - 404');
44
48
  }
45
49
  // The Optimize process overview renders a bounded slice of the definition
@@ -84,7 +84,13 @@ _8_10_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () =>
84
84
  });
85
85
  await _8_10_1.test.step('Navigate to Cross Component Test Project', async () => {
86
86
  await homePage.clickSkipCustomization();
87
- await modelerHomePage.createCrossComponentProjectFolder();
87
+ // createCrossComponentProjectFolder() hunts for a project tile that
88
+ // Modeler's own login page will never render. A dropped session (a 5xx
89
+ // from `/api/internal/login`) surfaces here as "element(s) not found"
90
+ // rather than as the sign-out it actually was (run 35562939552) --
91
+ // withSessionRecovery detects that case and signs back in as the test
92
+ // user this test just switched to, before retrying once.
93
+ await (0, UtilitiesPage_1.withSessionRecovery)(page, loginPage, appsPage, modelerHomePage.modelerPageBanner, testUser, (testInfo.workerIndex + 1) * 1000, () => modelerHomePage.createCrossComponentProjectFolder());
88
94
  });
89
95
  await _8_10_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
90
96
  await (0, UtilitiesPage_1.runMultipleProcesses)(clusterName, page, modelerHomePage, modelerCreatePage, {
@@ -196,7 +202,13 @@ _8_10_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () =>
196
202
  });
197
203
  await _8_10_1.test.step('Navigate to Cross Component Test Project', async () => {
198
204
  await homePage.clickSkipCustomization();
199
- await modelerHomePage.createCrossComponentProjectFolder();
205
+ // createCrossComponentProjectFolder() hunts for a project tile that
206
+ // Modeler's own login page will never render. A dropped session (a 5xx
207
+ // from `/api/internal/login`) surfaces here as "element(s) not found"
208
+ // rather than as the sign-out it actually was (run 35562939552) --
209
+ // withSessionRecovery detects that case and signs back in as the test
210
+ // user this test just switched to, before retrying once.
211
+ await (0, UtilitiesPage_1.withSessionRecovery)(page, loginPage, appsPage, modelerHomePage.modelerPageBanner, testUser, (testInfo.workerIndex + 1) * 1000, () => modelerHomePage.createCrossComponentProjectFolder());
200
212
  });
201
213
  await _8_10_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
202
214
  await (0, UtilitiesPage_1.runMultipleProcesses)(clusterName, page, modelerHomePage, modelerCreatePage, {
@@ -428,7 +440,13 @@ _8_10_1.test.describe.parallel('RBA Enabled User Flows Test @tasklistV2', () =>
428
440
  });
429
441
  await _8_10_1.test.step('Navigate to Cross Component Test Project', async () => {
430
442
  await homePage.clickSkipCustomization();
431
- await modelerHomePage.createCrossComponentProjectFolder();
443
+ // createCrossComponentProjectFolder() hunts for a project tile that
444
+ // Modeler's own login page will never render. A dropped session (a 5xx
445
+ // from `/api/internal/login`) surfaces here as "element(s) not found"
446
+ // rather than as the sign-out it actually was (run 35562939552) --
447
+ // withSessionRecovery detects that case and signs back in as the test
448
+ // user this test just switched to, before retrying once.
449
+ await (0, UtilitiesPage_1.withSessionRecovery)(page, loginPage, appsPage, modelerHomePage.modelerPageBanner, testUser, (testInfo.workerIndex + 1) * 1000, () => modelerHomePage.createCrossComponentProjectFolder());
432
450
  });
433
451
  await _8_10_1.test.step('Create Two BPMN Diagrams with User Task and Start Process Instance', async () => {
434
452
  await (0, UtilitiesPage_1.runMultipleProcesses)(clusterName, page, modelerHomePage, modelerCreatePage, {
@@ -35,7 +35,7 @@ _8_10_1.test.describe('Web Modeler User Flow Tests', () => {
35
35
  await (0, mailSlurpClient_1.deleteInbox)(inboxes[testInfo.title]);
36
36
  }
37
37
  });
38
- (0, _8_10_1.test)('Form.js Integration with User Task and AI Generated Form @ai-external', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, consoleOrganizationsPage, }) => {
38
+ (0, _8_10_1.test)('Form.js Integration with User Task and AI Generated Form @ai-external', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, formJsPage, consoleOrganizationsPage, loginPage, }, testInfo) => {
39
39
  _8_10_1.test.slow();
40
40
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
41
41
  const processName = 'User_Task_Process_With_AI_Form' + randomString;
@@ -65,7 +65,16 @@ _8_10_1.test.describe('Web Modeler User Flow Tests', () => {
65
65
  // unclickable project tile. openModelerWithRetry re-runs the handshake,
66
66
  // and with it the internal login, when Modeler is not actually signed
67
67
  // in.
68
- await appsPage.openModelerWithRetry(modelerHomePage.modelerPageBanner, 90000, 3, modelerHomePage.createNewProjectButton);
68
+ //
69
+ // That handshake retry still assumes Console itself is still
70
+ // authenticated -- re-entering through the apps menu cannot help when
71
+ // the whole session was dropped, not just Modeler's. withSessionRecovery
72
+ // is the fallback for that case: it only engages when the wrapped
73
+ // action still fails, checks whether the tab actually landed on an
74
+ // identity-provider page, and if so signs back in before trying once
75
+ // more (run 35562939552, "Camunda Modeler" banner absent 90s after 3
76
+ // such retries).
77
+ await (0, UtilitiesPage_1.withSessionRecovery)(page, loginPage, appsPage, modelerHomePage.modelerPageBanner, testUser, (testInfo.workerIndex + 1) * 1000, () => appsPage.openModelerWithRetry(modelerHomePage.modelerPageBanner, 90000, 3, modelerHomePage.createNewProjectButton));
69
78
  });
70
79
  await _8_10_1.test.step('Open Cross Component Test Project', async () => {
71
80
  await modelerHomePage.clickCrossComponentProjectFolder();
@@ -357,7 +366,7 @@ _8_10_1.test.describe('Web Modeler User Flow Tests', () => {
357
366
  await (0, deleteOrg_1.deleteOrganization)(page, newOrganizationUuid);
358
367
  });
359
368
  });
360
- (0, _8_10_1.test)('Timer Event User Flow @tasklistV2', async ({ homePage, modelerHomePage, appsPage, modelerCreatePage, operateHomePage, operateProcessInstancePage, operateProcessesPage, }) => {
369
+ (0, _8_10_1.test)('Timer Event User Flow @tasklistV2', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, operateHomePage, operateProcessInstancePage, operateProcessesPage, loginPage, }, testInfo) => {
361
370
  const processName = 'Timer_Event_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
362
371
  await _8_10_1.test.step('Navigate to Web Modeler', async () => {
363
372
  await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
@@ -370,7 +379,13 @@ _8_10_1.test.describe('Web Modeler User Flow Tests', () => {
370
379
  });
371
380
  });
372
381
  await _8_10_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
373
- await modelerHomePage.clickCrossComponentProjectFolder();
382
+ // clickCrossComponentProjectFolder() hunts for a project tile that
383
+ // Modeler's own login page will never render. A dropped session (a 5xx
384
+ // from `/api/internal/login`) surfaces here as "element(s) not found"
385
+ // rather than as the sign-out it actually was (run 35562939552) --
386
+ // withSessionRecovery detects that case and signs back in before
387
+ // retrying once, same as the other 8.10 specs that hit this.
388
+ await (0, UtilitiesPage_1.withSessionRecovery)(page, loginPage, appsPage, modelerHomePage.modelerPageBanner, testUser, (testInfo.workerIndex + 1) * 1000, () => modelerHomePage.clickCrossComponentProjectFolder());
374
389
  await modelerHomePage.clickDiagramTypeDropdown();
375
390
  await modelerHomePage.clickBpmnTemplateOption();
376
391
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1214",
3
+ "version": "0.0.1216",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",