@camunda/e2e-test-suite 0.0.747 → 0.0.749

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.
@@ -451,22 +451,38 @@ class ModelerCreatePage {
451
451
  await this.appendGatewayButton.click({ timeout: 90000 });
452
452
  }
453
453
  async setEngineVersion(version) {
454
- await this.page
455
- .locator('[data-test="version-selector"]')
456
- .click({ timeout: 10000 });
454
+ const escapedVersion = version.replace(/\./g, '\\.');
455
+ const versionSelector = this.page.locator('[data-test="version-selector"]');
457
456
  // The dropdown renders each version as an outer <label> (Styled.Label)
458
457
  // wrapping a radio input and a separate text span ("Camunda X.Y").
459
458
  // The radio's accessible name is empty (no label prop passed), so
460
459
  // getByRole('radio') won't resolve to the right item by text.
461
460
  // Clicking the outer <label> containing the version string triggers
462
461
  // the enclosed radio input's onChange via event propagation.
463
- const escapedVersion = version.replace(/\./g, '\\.');
464
- await this.page
462
+ const versionOption = this.page
465
463
  .getByRole('radiogroup', { name: 'Camunda versions' })
466
464
  .locator('label')
467
465
  .filter({ hasText: new RegExp(`Camunda\\s+${escapedVersion}`) })
468
- .first()
469
- .click({ timeout: 5000 });
466
+ .first();
467
+ // Retry the open-select cycle and confirm via the selector label ("Check
468
+ // problems against: Camunda X.Y"). A label click dropped while the dropdown
469
+ // is still animating silently leaves the diagram on the default (older)
470
+ // version, which greys out the version-gated REST connector downstream.
471
+ for (let attempt = 0; attempt < 3; attempt++) {
472
+ if (await versionSelector.filter({ hasText: version }).isVisible()) {
473
+ return;
474
+ }
475
+ await versionSelector.click({ timeout: 10000 });
476
+ await versionOption.click({ timeout: 5000 });
477
+ const committed = await versionSelector
478
+ .filter({ hasText: version })
479
+ .waitFor({ state: 'visible', timeout: 10000 })
480
+ .then(() => true)
481
+ .catch(() => false);
482
+ if (committed) {
483
+ return;
484
+ }
485
+ }
470
486
  }
471
487
  async clickChangeTypeButton() {
472
488
  try {
@@ -152,6 +152,10 @@ class ModelerHomePage {
152
152
  const timeout = 60000;
153
153
  while (attempts < maxAttempts) {
154
154
  try {
155
+ // The Web Modeler upstream can return a transient nginx 503 while its
156
+ // pod restarts. Reload until the app shell renders before interacting
157
+ // with the project list, instead of asserting against the error page.
158
+ await this.waitForModelerReady();
155
159
  await this.clickMessageBanner();
156
160
  await (0, test_1.expect)(this.crossComponentProjectFolder).toBeVisible({ timeout });
157
161
  // The WhatsNew modal renders lazily after page load and intercepts clicks.
@@ -198,9 +202,15 @@ class ModelerHomePage {
198
202
  await this.chooseBpmnTemplateButton.click();
199
203
  }
200
204
  async clickDiagramTypeDropdown() {
205
+ // The Web Modeler upstream can return a transient nginx 503 while its pod
206
+ // restarts. Wait for the app shell before checking for the dropdown, and
207
+ // reload-then-wait on each retry so a 503 is ridden out rather than
208
+ // reasserted against the error page.
209
+ await this.waitForModelerReady();
201
210
  await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.diagramTypeDropdown, {
202
211
  postAction: async () => {
203
212
  await this.page.reload();
213
+ await this.waitForModelerReady();
204
214
  },
205
215
  });
206
216
  await this.diagramTypeDropdown.click();
@@ -15,7 +15,8 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
15
15
  await (0, _setup_1.captureScreenshot)(page, testInfo);
16
16
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
17
17
  });
18
- (0, SM_8_9_1.test)('REST Connector No Auth User Flow', async ({ operateHomePage, modelerHomePage, operateProcessInstancePage, modelerCreatePage, connectorSettingsPage, operateProcessesPage, connectorMarketplacePage, navigationPage, }) => {
18
+ // Skipped due to connectors bug #7716: https://github.com/camunda/connectors/issues/7716
19
+ SM_8_9_1.test.skip('REST Connector No Auth User Flow', async ({ operateHomePage, modelerHomePage, operateProcessInstancePage, modelerCreatePage, connectorSettingsPage, operateProcessesPage, connectorMarketplacePage, navigationPage, }) => {
19
20
  SM_8_9_1.test.slow();
20
21
  const processName = 'REST_Connector_No_Auth_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
21
22
  await SM_8_9_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
@@ -39,7 +40,8 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
39
40
  await operateProcessInstancePage.assertProcessVariableContainsText('status', '"Awesome!"');
40
41
  });
41
42
  });
42
- (0, SM_8_9_1.test)('REST Connector Bearer Token Auth User Flow', async ({ operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
43
+ // Skipped due to connectors bug #7716: https://github.com/camunda/connectors/issues/7716
44
+ SM_8_9_1.test.skip('REST Connector Bearer Token Auth User Flow', async ({ operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
43
45
  SM_8_9_1.test.slow();
44
46
  const processName = 'REST_Connector_Bearer_Auth_Process' +
45
47
  (await (0, _setup_1.generateRandomStringAsync)(3));
@@ -126,7 +128,8 @@ SM_8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
126
128
  (0, test_1.expect)(result).toBe('completed');
127
129
  });
128
130
  });
129
- (0, SM_8_9_1.test)('Connector Secrets User Flow', async ({ operateHomePage, modelerHomePage, navigationPage, modelerCreatePage, connectorSettingsPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
131
+ // Skipped due to connectors bug #7716: https://github.com/camunda/connectors/issues/7716
132
+ SM_8_9_1.test.skip('Connector Secrets User Flow', async ({ operateHomePage, modelerHomePage, navigationPage, modelerCreatePage, connectorSettingsPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
130
133
  SM_8_9_1.test.slow();
131
134
  const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
132
135
  await SM_8_9_1.test.step('Open Cross Component Test Project and Create a BPMN Diagram Template', async () => {
@@ -256,7 +256,8 @@ if (process.env.IS_MT === 'true') {
256
256
  });
257
257
  }
258
258
  });
259
- (0, SM_8_9_1.test)('Second User Can Access Tenant Created By Main User - Connectors Flow @tasklistV2', async ({ page, modelerHomePage, modelerCreatePage, operateProcessInstancePage, operateProcessesPage, operateHomePage, navigationPage, managementIdentityTenantPage, connectorSettingsPage, connectorMarketplacePage, optimizeHomePage, optimizeDashboardPage, ocIdentityHomePage, ocTenantPage, managementIdentityPage, keycloakAdminPage, keycloakLoginPage, ocIdentityRolesPage, ocIdentityMappingRulesPage, browser, }) => {
259
+ // Skipped due to bug #320: https://github.com/camunda/marketplace-api/issues/320
260
+ SM_8_9_1.test.skip('Second User Can Access Tenant Created By Main User - Connectors Flow @tasklistV2', async ({ page, modelerHomePage, modelerCreatePage, operateProcessInstancePage, operateProcessesPage, operateHomePage, navigationPage, managementIdentityTenantPage, connectorSettingsPage, connectorMarketplacePage, optimizeHomePage, optimizeDashboardPage, ocIdentityHomePage, ocTenantPage, managementIdentityPage, keycloakAdminPage, keycloakLoginPage, ocIdentityRolesPage, ocIdentityMappingRulesPage, browser, }) => {
260
261
  SM_8_9_1.test.slow();
261
262
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
262
263
  const processName = 'Second_User_Connectors_Flow_' + randomString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.747",
3
+ "version": "0.0.749",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",