@camunda/e2e-test-suite 0.0.1063 → 0.0.1065

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.
@@ -1047,10 +1047,17 @@ class ModelerCreatePage {
1047
1047
  // 1. Connect cluster → "Configure environment" modal → select cluster → Save
1048
1048
  // 2. Deploy process → wait for success banner
1049
1049
  // 3. Configure test case
1050
+ // The "Test Studio" rebrand gave this button the stable test id
1051
+ // `test-configuration-deploy-button` (confirmed in the failing run's trace
1052
+ // DOM). Prefer it, and keep the label-scoped locator as a fallback for
1053
+ // older modeler builds that render the button without a test id.
1050
1054
  const setupDeployButton = this.page
1055
+ .getByTestId('test-configuration-deploy-button')
1056
+ .or(this.page
1051
1057
  .getByText('Deploy process')
1052
1058
  .locator('..')
1053
- .getByRole('button', { name: 'Deploy' });
1059
+ .getByRole('button', { name: 'Deploy' }))
1060
+ .first();
1054
1061
  // Both attributes on this button have been renamed by camunda-hub, in
1055
1062
  // separate commits: a90fd06 changed the label from "Configure scenario" to
1056
1063
  // "Configure test case", and b3958a1649 (#27259, 2026-08-07) then changed
@@ -1081,7 +1088,18 @@ class ModelerCreatePage {
1081
1088
  // still about to appear. ConfigureTestPanel returns null for as long as the
1082
1089
  // overlay is up, so the Start button never existed and
1083
1090
  // clickStartInstanceButton burned its entire retry budget looking for it.
1084
- const configurationOverlay = this.page.locator('[data-test="play-configuration-overlay"]');
1091
+ // camunda-hub's "Play" -> "Test Studio" rebrand renamed this container's
1092
+ // data-test from `play-configuration-overlay` to
1093
+ // `test-studio-configuration-overlay` (confirmed in the failing run's trace
1094
+ // DOM), so the old gate matched nothing and timed out. Anchor on the new
1095
+ // data-test, keep the legacy attribute for older modeler builds, and fall
1096
+ // back to the "Setup environment" panel title. This locator means "the
1097
+ // setup panel is still on screen".
1098
+ const configurationOverlay = this.page
1099
+ .locator('[data-test="test-studio-configuration-overlay"]')
1100
+ .or(this.page.locator('[data-test="play-configuration-overlay"]'))
1101
+ .or(this.page.getByText('Setup environment'))
1102
+ .first();
1085
1103
  const configureTestPanel = this.page.getByTestId('configure-test-panel');
1086
1104
  await (0, test_1.expect)(configurationOverlay
1087
1105
  .or(this.continueToPlayButton)
@@ -46,12 +46,20 @@ class OCIdentityRolesPage {
46
46
  this.assignMappingRuleButton = page.getByRole('button', {
47
47
  name: /^(Assign mapping rule|assignMapping)$/,
48
48
  });
49
- this.mappingSearchBox = page.getByRole('searchbox', {
50
- name: 'Search by mapping rule ID',
51
- });
52
49
  this.assignMappingModal = page.getByRole('dialog', {
53
50
  name: 'Assign mapping rule',
54
51
  });
52
+ // The design-system modal's search field is a cmdk combobox
53
+ // (role="combobox"), not the searchbox the pre design-system modal
54
+ // rendered; the Mapping rules list page keeps a page-level searchbox with
55
+ // the same accessible name, so scope this to the dialog and accept either
56
+ // role.
57
+ this.mappingSearchBox = this.assignMappingModal
58
+ .getByRole('combobox', { name: 'Search by mapping rule ID' })
59
+ .or(this.assignMappingModal.getByRole('searchbox', {
60
+ name: 'Search by mapping rule ID',
61
+ }))
62
+ .first();
55
63
  this.createRoleButton = page.getByRole('button', {
56
64
  name: /create role/i,
57
65
  });
@@ -125,19 +133,22 @@ class OCIdentityRolesPage {
125
133
  async assignMappingRuleToRole(roleId, mappingId) {
126
134
  const maxRetries = 3;
127
135
  for (let attempt = 0; attempt < maxRetries; attempt++) {
128
- await this.clickRole(roleId);
129
- // After clicking the role, the detail page may show a 404 if the role
130
- // was just created and the backend hasn't fully provisioned it yet.
131
- const gotNotFound = await this.notFoundText
132
- .isVisible({ timeout: 3000 })
133
- .catch(() => false);
134
- if (gotNotFound) {
135
- console.warn(`Attempt ${attempt + 1}: Role detail page returned 404 for "${roleId}", retrying...`);
136
- await this.page.goBack();
137
- await (0, sleep_1.sleep)(3000);
138
- continue;
139
- }
140
136
  try {
137
+ // Inside the try so a retry that lands on the role detail page rather
138
+ // than the roles list reports the failure that caused it, instead of
139
+ // masking it as a roles-table timeout from this lookup.
140
+ await this.clickRole(roleId);
141
+ // After clicking the role, the detail page may show a 404 if the role
142
+ // was just created and the backend hasn't fully provisioned it yet.
143
+ const gotNotFound = await this.notFoundText
144
+ .isVisible({ timeout: 3000 })
145
+ .catch(() => false);
146
+ if (gotNotFound) {
147
+ console.warn(`Attempt ${attempt + 1}: Role detail page returned 404 for "${roleId}", retrying...`);
148
+ await this.page.goBack();
149
+ await (0, sleep_1.sleep)(3000);
150
+ continue;
151
+ }
141
152
  await this.clickMappingRulesTab();
142
153
  await (0, test_1.expect)(this.assignMappingRuleButton).toBeVisible({
143
154
  timeout: 60000,
@@ -122,8 +122,7 @@ SM_8_10_1.test.describe('Identity User Flow Tests', () => {
122
122
  });
123
123
  });
124
124
  });
125
- // Skipped due to bug #61565: https://github.com/camunda/camunda/issues/61565
126
- SM_8_10_1.test.skip('User Roles User Flow on Orchestration Cluster', async ({ page, navigationPage, ocIdentityMappingRulesPage, ocIdentityHomePage, ocIdentityRolesPage, taskPanelPage, operateHomePage, settingsPage, browser, keycloakLoginPage, keycloakAdminPage, managementIdentityPage, }) => {
125
+ (0, SM_8_10_1.test)('User Roles User Flow on Orchestration Cluster', async ({ page, navigationPage, ocIdentityMappingRulesPage, ocIdentityHomePage, ocIdentityRolesPage, taskPanelPage, operateHomePage, settingsPage, browser, keycloakLoginPage, keycloakAdminPage, managementIdentityPage, }) => {
127
126
  if (node_process_1.default.env.IS_RBA === 'true' ||
128
127
  node_process_1.default.env.IS_MT === 'true' ||
129
128
  node_process_1.default.env.IS_LICENSE_KEY === 'true') {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1063",
3
+ "version": "0.0.1065",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",