@camunda/e2e-test-suite 0.0.987 → 0.0.989

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.
@@ -11,6 +11,7 @@ declare class FormJsPage {
11
11
  readonly uploadMultipleFilesToggle: Locator;
12
12
  readonly documentReferenceInput: Locator;
13
13
  readonly documentPreview: Locator;
14
+ readonly deployDialog: Locator;
14
15
  readonly deployFormButton: Locator;
15
16
  readonly deployModalSubmitButton: Locator;
16
17
  readonly deploySuccessNotification: Locator;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FormJsPage = void 0;
4
4
  const test_1 = require("@playwright/test");
5
+ const modelerCluster_1 = require("../../utils/modelerCluster");
5
6
  class FormJsPage {
6
7
  page;
7
8
  aiFormGeneratorButton;
@@ -14,6 +15,7 @@ class FormJsPage {
14
15
  uploadMultipleFilesToggle;
15
16
  documentReferenceInput;
16
17
  documentPreview;
18
+ deployDialog;
17
19
  deployFormButton;
18
20
  deployModalSubmitButton;
19
21
  deploySuccessNotification;
@@ -33,6 +35,7 @@ class FormJsPage {
33
35
  name: 'document reference',
34
36
  });
35
37
  this.documentPreview = page.locator('button[data-field-type="documentPreview"]');
38
+ this.deployDialog = page.getByRole('dialog');
36
39
  this.deployFormButton = page.locator('button.cds--btn--primary', {
37
40
  hasText: 'Deploy',
38
41
  });
@@ -78,6 +81,8 @@ class FormJsPage {
78
81
  }
79
82
  async deployForm() {
80
83
  await this.clickDeployFormButton();
84
+ await (0, test_1.expect)(this.deployDialog).toBeVisible({ timeout: 30000 });
85
+ await (0, modelerCluster_1.selectModelerCluster)(this.deployDialog);
81
86
  await this.clickDeployModalSubmitButton();
82
87
  await (0, test_1.expect)(this.deploySuccessNotification).toBeVisible({ timeout: 30000 });
83
88
  }
@@ -4,6 +4,7 @@ exports.ModelerCreatePage = void 0;
4
4
  const test_1 = require("@playwright/test");
5
5
  const ConnectorMarketplacePage_1 = require("./ConnectorMarketplacePage");
6
6
  const sleep_1 = require("../../utils/sleep");
7
+ const modelerCluster_1 = require("../../utils/modelerCluster");
7
8
  class ModelerCreatePage {
8
9
  page;
9
10
  generalPanel;
@@ -281,6 +282,8 @@ class ModelerCreatePage {
281
282
  }
282
283
  async deployProcessInstance(tenant = '') {
283
284
  await this.clickDeployButton();
285
+ await (0, test_1.expect)(this.dialog).toBeVisible({ timeout: 30000 });
286
+ await (0, modelerCluster_1.selectModelerCluster)(this.dialog);
284
287
  if (tenant.length > 0) {
285
288
  await this.clickTenantIdInput();
286
289
  await this.fillTenantIdInput(tenant);
@@ -376,20 +379,7 @@ class ModelerCreatePage {
376
379
  await (0, test_1.expect)(this.dialog).toBeVisible({
377
380
  timeout: 30000,
378
381
  });
379
- const modelerClusterName = process.env.MODELER_CLUSTER_NAME;
380
- if (modelerClusterName) {
381
- const clusterSelect = this.dialog.getByRole('combobox', {
382
- name: 'Select a cluster',
383
- });
384
- await clusterSelect.click();
385
- const escapedClusterName = modelerClusterName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
386
- await this.dialog
387
- .getByRole('option', {
388
- name: new RegExp(`^${escapedClusterName}(?: \\(|$)`),
389
- })
390
- .click();
391
- await (0, test_1.expect)(clusterSelect).toContainText(modelerClusterName);
392
- }
382
+ await (0, modelerCluster_1.selectModelerCluster)(this.dialog);
393
383
  if (variables.length > 0) {
394
384
  await (0, test_1.expect)(this.variableInput).toBeVisible({
395
385
  timeout: 60000,
@@ -129,8 +129,7 @@ _8_10_1.test.describe('User Roles User Flow', () => {
129
129
  await modelerCreatePage.clickCloseButton();
130
130
  });
131
131
  });
132
- // Skipped due to bug #60139: https://github.com/camunda/camunda/issues/60139
133
- _8_10_1.test.skip('Analyst Role User Flow', async ({ page, modelerHomePage, appsPage, homePage, clusterPage, clusterDetailsPage, browser, consoleOrganizationsPage, settingsPage, operateHomePage, ocIdentityHomePage, taskPanelPage, optimizeHomePage, modelerCreatePage, }) => {
132
+ (0, _8_10_1.test)('Analyst Role User Flow', async ({ page, modelerHomePage, appsPage, homePage, clusterPage, clusterDetailsPage, browser, consoleOrganizationsPage, settingsPage, operateHomePage, ocIdentityHomePage, taskPanelPage, optimizeHomePage, modelerCreatePage, }) => {
134
133
  _8_10_1.test.slow();
135
134
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
136
135
  const processName = 'User Roles User Flow' + randomString;
@@ -0,0 +1,9 @@
1
+ import { Locator } from '@playwright/test';
2
+ /**
3
+ * Selects the cluster named by MODELER_CLUSTER_NAME in a Web Modeler deploy dialog.
4
+ *
5
+ * No-op when the variable is unset, which is every single-cluster environment. In a topology one
6
+ * Hub Web Modeler serves several orchestration clusters and preselects one of them, so a test that
7
+ * does not choose deploys somewhere other than the release under test.
8
+ */
9
+ export declare function selectModelerCluster(dialog: Locator): Promise<void>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.selectModelerCluster = void 0;
4
+ const test_1 = require("@playwright/test");
5
+ /**
6
+ * Selects the cluster named by MODELER_CLUSTER_NAME in a Web Modeler deploy dialog.
7
+ *
8
+ * No-op when the variable is unset, which is every single-cluster environment. In a topology one
9
+ * Hub Web Modeler serves several orchestration clusters and preselects one of them, so a test that
10
+ * does not choose deploys somewhere other than the release under test.
11
+ */
12
+ async function selectModelerCluster(dialog) {
13
+ const modelerClusterName = process.env.MODELER_CLUSTER_NAME;
14
+ if (!modelerClusterName) {
15
+ return;
16
+ }
17
+ const clusterSelect = dialog.getByRole('combobox', {
18
+ name: 'Select a cluster',
19
+ });
20
+ await clusterSelect.click();
21
+ const escapedClusterName = modelerClusterName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
22
+ // The option label carries a trailing " (<status>)", so anchor the name and allow that suffix.
23
+ await dialog
24
+ .getByRole('option', {
25
+ name: new RegExp(`^${escapedClusterName}(?: \\(|$)`),
26
+ })
27
+ .click();
28
+ await (0, test_1.expect)(clusterSelect).toContainText(modelerClusterName);
29
+ }
30
+ exports.selectModelerCluster = selectModelerCluster;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.987",
3
+ "version": "0.0.989",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",