@camunda/e2e-test-suite 0.0.528 → 0.0.530

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.
@@ -13,6 +13,7 @@ declare class OperateProcessesPage {
13
13
  readonly processInstanceKeyTextBox: Locator;
14
14
  private readonly whatsNewPopUp;
15
15
  private readonly gotItButton;
16
+ private readonly processesTabLink;
16
17
  constructor(page: Page);
17
18
  private checkCheckbox;
18
19
  private uncheckCheckbox;
@@ -19,9 +19,11 @@ class OperateProcessesPage {
19
19
  processInstanceKeyTextBox;
20
20
  whatsNewPopUp;
21
21
  gotItButton;
22
+ processesTabLink;
22
23
  constructor(page) {
23
24
  this.page = page;
24
25
  this.processResultCount = page.getByTestId('result-count');
26
+ this.processesTabLink = page.getByRole('link', { name: 'Processes' });
25
27
  this.processActiveCheckbox = page
26
28
  .locator('label')
27
29
  .filter({ hasText: 'Active' });
@@ -206,7 +208,9 @@ class OperateProcessesPage {
206
208
  return;
207
209
  }
208
210
  const MAX_ATTEMPTS = 30;
209
- const TOTAL_TIMEOUT_MS = constants_1._1_MINUTE_IN_MS * 6;
211
+ const TOTAL_TIMEOUT_MS = env_1.isOpenSearch
212
+ ? constants_1._1_MINUTE_IN_MS * 10
213
+ : constants_1._1_MINUTE_IN_MS * 6;
210
214
  let attempt = 0;
211
215
  let lastError;
212
216
  const startTime = Date.now();
@@ -239,6 +243,22 @@ class OperateProcessesPage {
239
243
  .waitForLoadState('networkidle', { timeout: 30000 })
240
244
  .catch(() => console.log('waitForLoadState after Operate navigation timed out, continuing...'));
241
245
  }
246
+ // Operate may land on the Dashboard after reload even when the captured
247
+ // URL pointed at the Processes view. The filter checkboxes only exist on
248
+ // the Processes tab, so navigate there explicitly before applying filters.
249
+ try {
250
+ await this.processesTabLink.waitFor({
251
+ state: 'visible',
252
+ timeout: constants_1._1_SECOND_IN_MS * 10,
253
+ });
254
+ await this.processesTabLink.click({ timeout: constants_1._1_SECOND_IN_MS * 10 });
255
+ await this.page
256
+ .waitForLoadState('networkidle', { timeout: 30000 })
257
+ .catch(() => { });
258
+ }
259
+ catch (navErr) {
260
+ console.log(`Processes tab click failed after reload: ${String(navErr)}`);
261
+ }
242
262
  // Re-apply checkbox filter lost after reload
243
263
  try {
244
264
  await this.applyProcessStateFilter(type);
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OCIdentityHomePage = void 0;
4
4
  const test_1 = require("@playwright/test");
5
5
  const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
6
+ const clickLocatorWithRetry_1 = require("../../utils/assertionHelpers/clickLocatorWithRetry");
6
7
  class OCIdentityHomePage {
7
8
  page;
8
9
  groupsTab;
@@ -62,8 +63,17 @@ class OCIdentityHomePage {
62
63
  await this.authorizationsTab.click();
63
64
  }
64
65
  async clickRolesTab() {
65
- await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.rolesTab);
66
- await this.rolesTab.click();
66
+ // OC Identity occasionally renders the banner without the secondary nav
67
+ // tabs on opensearch upgrade scenarios. Reload between attempts to force
68
+ // the SPA to rehydrate the navigation instead of waiting on a stuck DOM.
69
+ await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.rolesTab, {
70
+ visibilityTimeout: 15000,
71
+ totalTimeout: 90000,
72
+ maxRetries: 4,
73
+ postAction: async () => {
74
+ await this.page.reload({ waitUntil: 'domcontentloaded' });
75
+ },
76
+ });
67
77
  }
68
78
  async clickGroupsTab() {
69
79
  await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.groupsTab);
@@ -4,7 +4,7 @@ exports.OCIdentityRolesPage = void 0;
4
4
  const test_1 = require("@playwright/test");
5
5
  const UtilitiesPage_1 = require("../SM-8.8/UtilitiesPage");
6
6
  const expectLocatorWithPagination_1 = require("../../utils/assertionHelpers/expectLocatorWithPagination");
7
- const expectLocatorWithRetry_1 = require("../../utils/assertionHelpers/expectLocatorWithRetry");
7
+ const clickLocatorWithRetry_1 = require("../../utils/assertionHelpers/clickLocatorWithRetry");
8
8
  class OCIdentityRolesPage {
9
9
  page;
10
10
  selectResourceTypeTab;
@@ -174,11 +174,17 @@ class OCIdentityRolesPage {
174
174
  await this.assignUserSubButton.click();
175
175
  }
176
176
  async clickAdminRole() {
177
- await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.adminRole, {
177
+ // The Roles list is occasionally empty on first render after the Roles
178
+ // tab loads (opensearch upgrade scenarios). Reload between attempts so
179
+ // the table refetches instead of waiting on a stale empty state.
180
+ await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.adminRole, {
178
181
  visibilityTimeout: 30000,
179
182
  totalTimeout: 120000,
183
+ maxRetries: 4,
184
+ postAction: async () => {
185
+ await this.page.reload({ waitUntil: 'domcontentloaded' });
186
+ },
180
187
  });
181
- await this.adminRole.click();
182
188
  }
183
189
  async clickClientsTab() {
184
190
  await this.clientsTab.click();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.528",
3
+ "version": "0.0.530",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",