@camunda/e2e-test-suite 0.0.1219 → 0.0.1221

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.
@@ -264,9 +264,23 @@ class ModelerHomePage {
264
264
  // into it, so the breadcrumb editor was never mounted at all. Rename the
265
265
  // row in place rather than clicking "New project" again, which would leave
266
266
  // a second, permanently unnamed project behind in the org.
267
- await this.defaultNamedProjectRow
268
- .locator('[data-test="entity-context-dropdown"]')
269
- .click({ timeout: 30000 });
267
+ //
268
+ // Routed through clickLocatorWithRetry with a dialog-dismiss preAction --
269
+ // the same guard clickCreateNewProjectButton and the folder tile already
270
+ // use, and the one row control in this flow that was still a raw click.
271
+ // Creating a project mounts an announcement dialog over the projects list
272
+ // (see enterNewProjectName); it re-appears during the waits above and
273
+ // intercepts this context-dropdown, so the bare click timed out for its
274
+ // whole budget every toPass iteration. Dismissing right before each
275
+ // attempt clears the overlay the caller's earlier dismiss no longer
276
+ // covers.
277
+ await (0, clickLocatorWithRetry_1.clickLocatorWithRetry)(this.page, this.defaultNamedProjectRow.locator('[data-test="entity-context-dropdown"]'), {
278
+ totalTimeout: 90000,
279
+ visibilityTimeout: 15000,
280
+ preAction: async () => {
281
+ await this.dismissBlockingDialog();
282
+ },
283
+ });
270
284
  await this.renameMenuItem.click({ timeout: 10000 });
271
285
  }
272
286
  async enterIdpApplicationName(name) {
@@ -259,6 +259,25 @@ async function withSessionRecovery(page, loginPage, appsPage, modelerBanner, tes
259
259
  return;
260
260
  }
261
261
  catch (error) {
262
+ // A mid-flow sign-out redirects to the IdP asynchronously: at the instant
263
+ // action() throws, the tab can still report the Modeler URL for a beat
264
+ // before it commits to weblogin.*, so a single synchronous isSignedOut()
265
+ // check reads "still signed in" and the recovery below never fires -- the
266
+ // error then propagates while the tab drifts on to the login page, which
267
+ // is exactly how a create-button-never-visible timeout presented on the
268
+ // isolated provisioning burst. Give the redirect a bounded window to land
269
+ // before deciding whether this was a dropped session.
270
+ if (!isSignedOut(page)) {
271
+ try {
272
+ await page.waitForURL((url) => url.hostname.startsWith('weblogin.') ||
273
+ (url.hostname.startsWith('modeler.') &&
274
+ /^\/login\/?$/.test(url.pathname)), { timeout: 15000 });
275
+ }
276
+ catch {
277
+ // Redirect never landed within the window: this was not a dropped
278
+ // session, so fall through and let the original error propagate.
279
+ }
280
+ }
262
281
  if (!isSignedOut(page) || recovery === maxRecoveries) {
263
282
  throw error;
264
283
  }
@@ -351,6 +351,13 @@ class ModelerHomePage {
351
351
  if (await committedProjectName.first().isVisible()) {
352
352
  return;
353
353
  }
354
+ // A failed create-project POST logs the SPA out on its own -- the tab
355
+ // bounces to the Auth0 login form (or lands on "Project not found") -- so
356
+ // the inline editor never mounts and every probe below waits out its
357
+ // budget on a page Modeler does not own. Recover the session first, the
358
+ // same primitive clickCreateNewProjectButton uses, so the re-creation
359
+ // branch below runs against Modeler rather than the login form.
360
+ await this.recoverModelerSession();
354
361
  // The rename runs on a freshly created project, which is exactly when an
355
362
  // announcement dialog mounts on top of it: it takes focus, the inline
356
363
  // editor unmounts, and the click below then waits out its whole timeout
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1219",
3
+ "version": "0.0.1221",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",