@camunda/e2e-test-suite 0.0.1080 → 0.0.1081

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.
@@ -314,7 +314,21 @@ class AppsPage {
314
314
  }
315
315
  catch (error) {
316
316
  console.warn(`Click attempt ${retries + 1} failed: ${error}`);
317
- await new Promise((resolve) => setTimeout(resolve, 10000));
317
+ // The switcher renders its component list from data Console fetches
318
+ // once; when that render comes back empty the panel stays empty for
319
+ // the rest of the page's life, and re-clicking the switcher button
320
+ // only toggles that same empty panel shut and open again. Reload so
321
+ // Console refetches and rebuilds the list — the same recovery
322
+ // `clickTasklist` and `clickOptimize` already use — which also leaves
323
+ // the panel closed, so the next `clickCamundaApps()` reopens it
324
+ // instead of closing an already-open one.
325
+ if (!this.page.isClosed()) {
326
+ await this.page
327
+ .waitForLoadState('domcontentloaded', { timeout: 20000 })
328
+ .catch(() => { });
329
+ await this.page.reload().catch(() => { });
330
+ await (0, sleep_1.sleep)(20000);
331
+ }
318
332
  }
319
333
  }
320
334
  throw new Error(`Failed to click the console link after ${maxRetries} attempts.`);
@@ -65,6 +65,7 @@ declare class ClusterDetailsPage {
65
65
  performClusterUpdate(targetVersion?: string): Promise<void>;
66
66
  clickCloseModalButton(): Promise<void>;
67
67
  clickSettingsTab(): Promise<void>;
68
+ private waitForAuthorizationsSection;
68
69
  enableAuthorizations(): Promise<void>;
69
70
  disableAuthorizations(): Promise<void>;
70
71
  searchAndClickClientCredentialsLink(name: string): Promise<ClientCredentialsDetailsPage>;
@@ -241,9 +241,28 @@ class ClusterDetailsPage {
241
241
  async clickSettingsTab() {
242
242
  await this.settingsTab.click({ timeout: 60000 });
243
243
  }
244
+ // Console remounts the cluster-detail tab bar while the cluster payload is
245
+ // still loading, which silently discards a Settings click made in that
246
+ // window: the nightly trace shows the clicked tab left on
247
+ // `aria-selected="false"` with Overview still selected, so the Authorizations
248
+ // section never mounts and a single-shot wait on the heading can never
249
+ // succeed no matter how long it waits. Reload and re-select Settings between
250
+ // attempts so the click lands on a settled tab bar.
251
+ async waitForAuthorizationsSection() {
252
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.authorizationsHeading, {
253
+ visibilityTimeout: 60000,
254
+ totalTimeout: 240000,
255
+ maxRetries: 4,
256
+ postAction: async () => {
257
+ await this.page.reload({ waitUntil: 'domcontentloaded' });
258
+ await this.settingsTab.waitFor({ state: 'visible', timeout: 60000 });
259
+ await this.clickSettingsTab();
260
+ },
261
+ });
262
+ }
244
263
  async enableAuthorizations() {
245
264
  await (0, sleep_1.sleep)(5000);
246
- await (0, test_1.expect)(this.authorizationsHeading).toBeVisible({ timeout: 60000 });
265
+ await this.waitForAuthorizationsSection();
247
266
  // Locate all elements with class .cds--toggle__text
248
267
  const toggleTextElements = await this.page.$$('.cds--toggle__text');
249
268
  // Check if toggleTextElements has at least 2 elements
@@ -281,7 +300,7 @@ class ClusterDetailsPage {
281
300
  }
282
301
  }
283
302
  async disableAuthorizations() {
284
- await (0, test_1.expect)(this.authorizationsHeading).toBeVisible({ timeout: 60000 });
303
+ await this.waitForAuthorizationsSection();
285
304
  // Locate all elements with class .cds--toggle__text
286
305
  const toggleTextElements = await this.page.$$('.cds--toggle__text');
287
306
  // Check if toggleTextElements has at least 2 elements
@@ -274,7 +274,16 @@ class ClusterPage {
274
274
  }
275
275
  async clickClusterLink(name) {
276
276
  await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.clusterLink(name), {
277
+ // A reload per retry needs more headroom than the 60s default, otherwise
278
+ // the loop runs out of budget before the last attempt.
279
+ totalTimeout: 180000,
277
280
  postAction: async () => {
281
+ // When Console's cluster fetch comes back empty it renders the
282
+ // "Processes run on clusters" empty state and keeps it: clicking the
283
+ // Clusters banner is an in-app route change to the page that is
284
+ // already mounted, so nothing refetches and the row never appears.
285
+ // Reload first to force the list to be fetched again.
286
+ await this.page.reload({ waitUntil: 'domcontentloaded' });
278
287
  await this.clickClusterBanner();
279
288
  },
280
289
  });
@@ -168,7 +168,8 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
168
168
  await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000);
169
169
  });
170
170
  });
171
- (0, _8_9_1.test)('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, clusterPage, clusterSecretsPage, }) => {
171
+ // Skipped due to bug #8500: https://github.com/camunda/connectors/issues/8500
172
+ _8_9_1.test.skip('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, clusterPage, clusterSecretsPage, }) => {
172
173
  _8_9_1.test.slow();
173
174
  const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
174
175
  await _8_9_1.test.step('Navigate to Connectors Secrets', async () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1080",
3
+ "version": "0.0.1081",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",