@camunda/e2e-test-suite 0.0.1255 → 0.0.1256

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.
@@ -75,6 +75,7 @@ declare class ModelerHomePage {
75
75
  clickCreateIdpApplicationButton(): Promise<void>;
76
76
  clickCrossComponentProjectFolder(): Promise<void>;
77
77
  private waitForCrossComponentProjectFolder;
78
+ showAllWorkspaces(probeTimeout: number): Promise<void>;
78
79
  createCrossComponentProjectFolder(): Promise<void>;
79
80
  clickManageButton(retries?: number): Promise<void>;
80
81
  clickUploadFilesButton(): Promise<void>;
@@ -744,6 +744,13 @@ class ModelerHomePage {
744
744
  // so on its own it closes the banner and leaves the dialog open.
745
745
  await this.dismissBlockingDialog();
746
746
  await this.clickMessageBanner();
747
+ // postAction's reload resets Hub's scope filter to "My workspaces".
748
+ // Let a failed scope switch propagate like dismissBlockingDialog()
749
+ // and clickMessageBanner() above -- clickLocatorWithRetry's own
750
+ // preAction handling already logs and retries it; swallowing it here
751
+ // would otherwise leave the tile wait running against the wrong
752
+ // ("My workspaces") scope for its full visibilityTimeout.
753
+ await this.showAllWorkspaces(5000);
747
754
  },
748
755
  postAction: async () => {
749
756
  // The project tile only renders on the Modeler home page. A failure
@@ -770,6 +777,7 @@ class ModelerHomePage {
770
777
  // breaks every later run for that user.
771
778
  async waitForCrossComponentProjectFolder() {
772
779
  for (let attempt = 0; attempt < 2; attempt++) {
780
+ await this.showAllWorkspaces(10000);
773
781
  const found = await this.crossComponentProjectFolder
774
782
  .waitFor({ state: 'visible', timeout: 60000 })
775
783
  .then(() => true)
@@ -778,11 +786,40 @@ class ModelerHomePage {
778
786
  return true;
779
787
  if (attempt === 0) {
780
788
  await this.page.reload();
781
- await this.page.waitForLoadState('networkidle').catch(() => { });
789
+ // Bounded: Hub keeps background requests open, so an unbounded
790
+ // networkidle wait never settled and hung here for ~7 minutes until
791
+ // the test timeout (run 36372848529).
792
+ await this.page
793
+ .waitForLoadState('networkidle', { timeout: 15000 })
794
+ .catch(() => { });
782
795
  }
783
796
  }
784
797
  return false;
785
798
  }
799
+ // Since camunda-hub #28956 the Workspaces overview defaults org-elevated
800
+ // users to "My workspaces" -- only workspaces they are an explicit member
801
+ // of -- and resets to it on every load. The shared folder is created by
802
+ // whichever test user wins the race, so every other user sees "No
803
+ // workspaces match this filter" and never finds it. Widen the scope to
804
+ // "All workspaces" first. The control is absent outside Hub and for
805
+ // non-elevated users (their list is membership-scoped anyway), so a missing
806
+ // control is a no-op.
807
+ async showAllWorkspaces(probeTimeout) {
808
+ const scopeFilter = this.page.getByRole('combobox', {
809
+ name: 'Filter workspaces',
810
+ });
811
+ if (!(await this.becameVisible(scopeFilter, probeTimeout)))
812
+ return;
813
+ if ((await scopeFilter.innerText()).includes('All workspaces'))
814
+ return;
815
+ await scopeFilter.click({ timeout: 10000 });
816
+ await this.page
817
+ .getByRole('option', { name: 'All workspaces' })
818
+ .click({ timeout: 10000 });
819
+ await (0, test_1.expect)(scopeFilter).toContainText('All workspaces', {
820
+ timeout: 10000,
821
+ });
822
+ }
786
823
  // Retries the whole detect-or-create sequence, not just its individual
787
824
  // steps. Up to 27 test-user workers race to create/open this one shared
788
825
  // workspace concurrently, and a losing worker can land on a workspace-root
@@ -193,6 +193,8 @@ _8_10_1.test.describe('Cluster Setup Tests', () => {
193
193
  // than the 100% follower failure the leader-election attempt caused.
194
194
  await modelerHomePage.createCrossComponentProjectFolder();
195
195
  await modelerHomePage.clickHomeBreadcrumb();
196
+ // Hub resets the overview to "My workspaces" on every load.
197
+ await modelerHomePage.showAllWorkspaces(10000);
196
198
  await (0, test_1.expect)(modelerHomePage.crossComponentProjectFolder).toBeVisible({ timeout: 60000 });
197
199
  });
198
200
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.1255",
3
+ "version": "0.0.1256",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",