@camunda/e2e-test-suite 0.0.731 → 0.0.732

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.
@@ -1071,7 +1071,12 @@ class ModelerCreatePage {
1071
1071
  await this.continueToPlayButton.click({ timeout: 30000 });
1072
1072
  }
1073
1073
  async assertScenarioNameVisible(scenarioName) {
1074
- await (0, test_1.expect)(this.page.getByTestId('instance-header').getByText(scenarioName)).toBeVisible();
1074
+ await (0, test_1.expect)(this.page
1075
+ .getByTestId('instance-header')
1076
+ .getByText(scenarioName)
1077
+ .or(this.page
1078
+ .getByRole('region', { name: 'Scenarios' })
1079
+ .getByText(scenarioName, { exact: false }))).toBeVisible();
1075
1080
  }
1076
1081
  async fillStartEventVariablesForDocHandling(zeebeUrl, zeebeClientId, zeebeClientSecret) {
1077
1082
  console.log(`URL: ${zeebeUrl}, ClientId: ${zeebeClientId}, Secret: ${zeebeClientSecret}`);
@@ -100,7 +100,12 @@ class NavigationPage {
100
100
  const now = new Date();
101
101
  const elapsed = Date.now() - startTime;
102
102
  if (attempt < maxRetries - 1) {
103
- await (0, sleep_1.sleep)(2000);
103
+ // Progressive backoff: a transient Keycloak 5xx during the OAuth
104
+ // login (the "We are sorry... internal server error" page) can
105
+ // persist for several seconds. Widening the gap between attempts
106
+ // (2s, 4s, 6s, 8s) lets the auth server recover instead of burning
107
+ // every retry inside one short outage window.
108
+ await (0, sleep_1.sleep)(2000 * (attempt + 1));
104
109
  if (!this.page.isClosed()) {
105
110
  try {
106
111
  await this.page.waitForLoadState('load', { timeout: timeout });
@@ -152,7 +152,7 @@ class OCIdentityRolesPage {
152
152
  await this.createIdField.fill(role.id);
153
153
  await this.createNameField.fill(role.name);
154
154
  await this.createRoleModalCreateButton.click();
155
- await (0, test_1.expect)(this.createRoleModal).not.toBeVisible();
155
+ await (0, test_1.expect)(this.createRoleModal).not.toBeVisible({ timeout: 60000 });
156
156
  await (0, expectLocatorWithPagination_1.expectLocatorWithPagination)(this.page, this.rolesList
157
157
  .getByRole('cell', {
158
158
  name: role.name,
@@ -59,6 +59,13 @@ class OperateHomePage {
59
59
  });
60
60
  await this.processesTab.click({ timeout: constants_1._1_SECOND_IN_MS * 4 });
61
61
  },
62
+ postAction: async () => {
63
+ // Operate is a Vite SPA: a transient module/CSS preload failure
64
+ // renders a "Something went wrong - Please reload the page" screen
65
+ // on which the Processes tab click is a no-op. Reload to fetch fresh
66
+ // assets so the next attempt can render the Processes view.
67
+ await this.page.reload({ waitUntil: 'domcontentloaded' });
68
+ },
62
69
  });
63
70
  }
64
71
  async closeInformationDialog() {
@@ -130,7 +130,7 @@ class OptimizeReportPage {
130
130
  }
131
131
  async waitUntilLocatorIsVisible(locator, tab) {
132
132
  let elapsedTime = 0;
133
- const maxWaitTimeSeconds = 120000;
133
+ const maxWaitTimeSeconds = 300000;
134
134
  while (elapsedTime < maxWaitTimeSeconds) {
135
135
  const element = await locator;
136
136
  if (await element.isVisible()) {
@@ -96,6 +96,23 @@ class PlayPage {
96
96
  await this.completeJobButton.click();
97
97
  }
98
98
  async clickStartInstanceButton() {
99
+ const scenariosRegion = this.page.getByRole('region', { name: 'Scenarios' });
100
+ const backToScenariosButton = scenariosRegion.getByRole('button', {
101
+ name: 'Back to scenarios',
102
+ });
103
+ const closeScenariosButton = scenariosRegion.getByRole('button', {
104
+ name: 'Close',
105
+ });
106
+ // When "Configure scenario" is clicked with a prior scenario already saved,
107
+ // the Play UI opens scenario DETAILS (with "Back to scenarios") instead of
108
+ // the input panel. Close the Scenarios panel to reveal the canvas start controls.
109
+ const isDetailsView = await backToScenariosButton
110
+ .waitFor({ state: 'visible', timeout: 3000 })
111
+ .then(() => true)
112
+ .catch(() => false);
113
+ if (isDetailsView) {
114
+ await closeScenariosButton.click();
115
+ }
99
116
  const startTrigger = this.configureTestPanelStartButton
100
117
  .or(this.inputPanelStartButton)
101
118
  .or(this.startInstanceButton)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.731",
3
+ "version": "0.0.732",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",