@camunda/e2e-test-suite 0.0.1087 → 0.0.1089

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.
@@ -26,6 +26,7 @@ declare class ClusterDetailsPage {
26
26
  readonly alertsList: Locator;
27
27
  readonly createFirstAlertButton: Locator;
28
28
  readonly createNewAlertButton: Locator;
29
+ readonly alertsPanel: Locator;
29
30
  readonly emailRadioButton: Locator;
30
31
  readonly createAlertsDialog: Locator;
31
32
  readonly createAlertButton: Locator;
@@ -31,6 +31,7 @@ class ClusterDetailsPage {
31
31
  alertsList;
32
32
  createFirstAlertButton;
33
33
  createNewAlertButton;
34
+ alertsPanel;
34
35
  emailRadioButton;
35
36
  createAlertsDialog;
36
37
  createAlertButton;
@@ -117,6 +118,9 @@ class ClusterDetailsPage {
117
118
  this.createNewAlertButton = page.getByRole('button', {
118
119
  name: 'Create new alert',
119
120
  });
121
+ // The Alerts panel offers "Create an alert" while empty and "Create new
122
+ // alert" once it holds one, so either proves the panel itself mounted.
123
+ this.alertsPanel = this.createFirstAlertButton.or(this.createNewAlertButton);
120
124
  this.emailRadioButton = page.getByRole('radio', {
121
125
  name: 'Email',
122
126
  });
@@ -371,6 +375,22 @@ class ClusterDetailsPage {
371
375
  async clickAlertsTab() {
372
376
  await (0, test_1.expect)(this.alertsTab).toBeVisible({ timeout: 40000 });
373
377
  await this.alertsTab.click();
378
+ // The tab bar remounts while the cluster payload is still arriving, which
379
+ // discards the click and leaves Overview selected -- and the tab is a
380
+ // button, not a route, so nothing later re-selects it. Callers then read
381
+ // the Overview "Cluster Details" rows through the page-wide alertsList
382
+ // locator and see a row count that never changes. Confirm the panel
383
+ // mounted, re-selecting the tab after a reload between attempts.
384
+ await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.alertsPanel, {
385
+ visibilityTimeout: 60000,
386
+ totalTimeout: 240000,
387
+ maxRetries: 4,
388
+ postAction: async () => {
389
+ await this.page.reload({ waitUntil: 'domcontentloaded' });
390
+ await this.alertsTab.waitFor({ state: 'visible', timeout: 60000 });
391
+ await this.alertsTab.click({ timeout: 60000 });
392
+ },
393
+ });
374
394
  }
375
395
  async clickExpandButton() {
376
396
  await this.expandButton.click({ timeout: 60000 });
@@ -219,7 +219,26 @@ class FormJsPage {
219
219
  await (0, test_1.expect)(this.dialog).toBeVisible({
220
220
  timeout: 30000,
221
221
  });
222
- await this.selectCluster(clusterName);
222
+ // Same recovery as ModelerCreatePage.runProcessInstance: selectCluster
223
+ // clears the stage binding when the dialog does not offer the cluster, so
224
+ // ensureStageCluster rebinds here and reports that it navigated. Any other
225
+ // failure leaves the binding in place, it returns false, and the original
226
+ // error stands. This path has no surrounding retry loop, hence the one
227
+ // explicit second attempt.
228
+ try {
229
+ await this.selectCluster(clusterName);
230
+ }
231
+ catch (error) {
232
+ const rebound = await this.processApplicationPage.ensureStageCluster(clusterName);
233
+ if (!rebound) {
234
+ throw error;
235
+ }
236
+ await this.clickDeployButton();
237
+ await (0, test_1.expect)(this.dialog).toBeVisible({
238
+ timeout: 30000,
239
+ });
240
+ await this.selectCluster(clusterName);
241
+ }
223
242
  await this.selectOnlyThisResource();
224
243
  await this.clickDeploySubButton();
225
244
  await (0, test_1.expect)(this.deploySuccessNotification).toBeVisible({ timeout: 60000 });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1087",
3
+ "version": "0.0.1089",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",