@camunda/e2e-test-suite 0.0.1024 → 0.0.1026

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.
@@ -87,6 +87,6 @@ declare class IdentityUsersPage {
87
87
  createResourceAuthorization(processId: string): Promise<void>;
88
88
  clickAssignAuthorizationButton(): Promise<void>;
89
89
  clickAssignedRolesTab(): Promise<void>;
90
- assertUserIsAssignedCorrectRole(username: string, roles: string[]): Promise<void>;
90
+ assertUserIsAssignedCorrectRole(username: string, roles: (string | string[])[]): Promise<void>;
91
91
  }
92
92
  export { IdentityUsersPage };
@@ -462,6 +462,9 @@ class IdentityUsersPage {
462
462
  async clickAssignedRolesTab() {
463
463
  await this.assignedRolesTab.click();
464
464
  }
465
+ // A role entry may be a single name, or a list of interchangeable names when
466
+ // Management Identity ships the same permission set under more than one label
467
+ // (e.g. 'Hub'/'Web Modeler'); any one of the listed names satisfies the entry.
465
468
  async assertUserIsAssignedCorrectRole(username, roles) {
466
469
  await this.page.getByRole('cell', { name: username, exact: true }).click();
467
470
  // Wait for the Assigned Roles tab to render before clicking it; after
@@ -469,9 +472,13 @@ class IdentityUsersPage {
469
472
  await (0, test_1.expect)(this.assignedRolesTab).toBeVisible({ timeout: 30000 });
470
473
  await this.assignedRolesTab.click();
471
474
  for (const role of roles) {
475
+ const acceptedNames = Array.isArray(role) ? role : [role];
476
+ const roleCell = acceptedNames
477
+ .map((name) => this.page.getByRole('cell', { name, exact: true }))
478
+ .reduce((combined, cell) => combined.or(cell));
472
479
  // Use a generous timeout: on slow/post-upgrade clusters the role table
473
480
  // may take several seconds to populate after the tab switch.
474
- await (0, test_1.expect)(this.page.getByRole('cell', { name: role, exact: true })).toBeVisible({ timeout: 60000 });
481
+ await (0, test_1.expect)(roleCell.first()).toBeVisible({ timeout: 60000 });
475
482
  }
476
483
  }
477
484
  }
@@ -305,8 +305,16 @@ class ModelerCreatePage {
305
305
  .filter({ hasText: /^Authentication$/ })
306
306
  .first();
307
307
  this.oauthTokenEndpointInput = page.getByLabel('OAuth 2.0 token endpoint');
308
- this.closeDetailsPanel = page.getByTitle('Close Details Panel');
309
- this.openDetailsPanel = page.getByTitle('Open Details Panel');
308
+ // Hub's design-system details panel renders a second close control in its
309
+ // header, titled "Close Details panel" (PanelHeaderDs builds
310
+ // `Close ${title} panel`), which getByTitle also matches because its
311
+ // substring match is case-insensitive -- hence the strict-mode violation.
312
+ // Key on the sidebar toggle's data-test plus its state-dependent title so
313
+ // the locator stays unambiguous and still distinguishes collapse from
314
+ // expand; both attributes are rendered by the legacy and the
315
+ // design-system toggle alike.
316
+ this.closeDetailsPanel = page.locator('[data-test="details-panel-toggle"][title="Close Details Panel"]');
317
+ this.openDetailsPanel = page.locator('[data-test="details-panel-toggle"][title="Open Details Panel"]');
310
318
  }
311
319
  async deployProcessInstance(tenant = '') {
312
320
  await this.clickDeployButton();
@@ -109,14 +109,21 @@ if (process.env.IS_MIGRATION === 'true') {
109
109
  });
110
110
  });
111
111
  (0, SM_8_10_1.test)('Assert Users Persist in Management Identity With Correct Roles @tasklistV2', async ({ managementIdentityPage, identityUsersPage, }) => {
112
+ // 8.10 provisions 'Hub'/'Hub Admin' *alongside* 'Web Modeler'/'Web
113
+ // Modeler Admin' rather than renaming them, and both name pairs grant
114
+ // identical permissions, so an upgraded cluster may surface the modeler
115
+ // access under either pair. Each nested list accepts whichever of the
116
+ // equivalent names that cluster persisted. See camunda-docs
117
+ // docs/self-managed/upgrade/components/890-to-8100.md
118
+ // #management-identity-roles-and-permissions.
112
119
  await managementIdentityPage.clickUsersLink();
113
120
  await identityUsersPage.assertUserIsAssignedCorrectRole('demo', [
114
121
  'Default user role',
115
122
  'ManagementIdentity',
116
123
  'Optimize',
117
124
  'Orchestration',
118
- 'Hub',
119
- 'Hub Admin',
125
+ ['Hub', 'Web Modeler'],
126
+ ['Hub Admin', 'Web Modeler Admin'],
120
127
  ]);
121
128
  await managementIdentityPage.clickUsersLink();
122
129
  await identityUsersPage.assertUserIsAssignedCorrectRole('bart', [
@@ -124,8 +131,8 @@ if (process.env.IS_MIGRATION === 'true') {
124
131
  'ManagementIdentity',
125
132
  'Optimize',
126
133
  'Orchestration',
127
- 'Hub',
128
- 'Hub Admin',
134
+ ['Hub', 'Web Modeler'],
135
+ ['Hub Admin', 'Web Modeler Admin'],
129
136
  ]);
130
137
  await managementIdentityPage.clickUsersLink();
131
138
  await identityUsersPage.assertUserIsAssignedCorrectRole('lisa', [
@@ -133,8 +140,8 @@ if (process.env.IS_MIGRATION === 'true') {
133
140
  'ManagementIdentity',
134
141
  'Optimize',
135
142
  'Orchestration',
136
- 'Hub',
137
- 'Hub Admin',
143
+ ['Hub', 'Web Modeler'],
144
+ ['Hub Admin', 'Web Modeler Admin'],
138
145
  ]);
139
146
  });
140
147
  (0, SM_8_10_1.test)('Assert Demo User Can Deploy Processes', async ({ page, modelerHomePage, navigationPage, modelerCreatePage, operateHomePage, operateProcessesPage, operateProcessInstancePage, taskDetailsPage, taskPanelPage, }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1024",
3
+ "version": "0.0.1026",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",