@camunda/e2e-test-suite 0.0.1250 → 0.0.1252

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.
Files changed (54) hide show
  1. package/dist/pages/8.9/AppsPage.js +24 -12
  2. package/dist/pages/8.9/ClusterDetailsPage.js +8 -1
  3. package/dist/pages/8.9/ClusterPage.js +22 -20
  4. package/dist/pages/8.9/HomePage.js +6 -1
  5. package/dist/pages/8.9/ProcessApplicationPage.js +30 -10
  6. package/dist/pages/BrowseAllConnectorMarketplacePage.d.ts +17 -0
  7. package/dist/pages/BrowseAllConnectorMarketplacePage.js +145 -0
  8. package/dist/pages/SM-8.10/ClusterDetailsPage.d.ts +1 -1
  9. package/dist/pages/SM-8.10/ClusterDetailsPage.js +13 -6
  10. package/dist/pages/SM-8.10/ClusterPage.js +3 -1
  11. package/dist/pages/SM-8.10/ConnectorMarketplacePage.d.ts +2 -0
  12. package/dist/pages/SM-8.10/ConnectorMarketplacePage.js +16 -1
  13. package/dist/pages/SM-8.10/ModelerCreatePage.d.ts +4 -1
  14. package/dist/pages/SM-8.10/ModelerCreatePage.js +78 -51
  15. package/dist/pages/SM-8.10/ModelerHomePage.d.ts +2 -1
  16. package/dist/pages/SM-8.10/ModelerHomePage.js +24 -0
  17. package/dist/pages/SM-8.10/OperateHomePage.js +8 -1
  18. package/dist/pages/SM-8.10/OptimizeHomePage.js +13 -4
  19. package/dist/pages/SM-8.10/ProcessApplicationPage.d.ts +10 -5
  20. package/dist/pages/SM-8.10/ProcessApplicationPage.js +163 -68
  21. package/dist/pages/SM-8.10/UtilitiesPage.js +6 -6
  22. package/dist/pages/SM-8.7/NavigationPage.js +2 -1
  23. package/dist/tests/8.10/connectors-user-flows.spec.js +4 -2
  24. package/dist/tests/8.10/saas-migration-path-user-flows.spec.js +2 -1
  25. package/dist/tests/8.10/smoke-tests.spec.js +2 -1
  26. package/dist/tests/8.7/connectors-user-flows.spec.js +8 -4
  27. package/dist/tests/8.7/saas-migration-path-user-flows.spec.js +2 -1
  28. package/dist/tests/8.7/smoke-tests.spec.js +2 -1
  29. package/dist/tests/8.8/connectors-user-flows.spec.js +4 -2
  30. package/dist/tests/8.8/saas-migration-path-user-flows.spec.js +2 -1
  31. package/dist/tests/8.8/smoke-tests.spec.js +2 -1
  32. package/dist/tests/8.9/connectors-user-flows.spec.js +4 -2
  33. package/dist/tests/8.9/saas-migration-path-user-flows.spec.js +2 -1
  34. package/dist/tests/8.9/smoke-tests.spec.js +2 -1
  35. package/dist/tests/SM-8.10/cluster-management-user-flows.spec.js +13 -6
  36. package/dist/tests/SM-8.10/connectors-user-flows.spec.js +2 -1
  37. package/dist/tests/SM-8.10/hub-web-modeler-smoke.spec.d.ts +1 -0
  38. package/dist/tests/SM-8.10/hub-web-modeler-smoke.spec.js +24 -0
  39. package/dist/tests/SM-8.10/mt-enabled-user-flows.spec.js +3 -1
  40. package/dist/tests/SM-8.10/topology-orchestration-smoke.spec.d.ts +1 -0
  41. package/dist/tests/SM-8.10/topology-orchestration-smoke.spec.js +58 -0
  42. package/dist/tests/SM-8.7/topology-orchestration-smoke.spec.d.ts +1 -0
  43. package/dist/tests/SM-8.7/topology-orchestration-smoke.spec.js +62 -0
  44. package/dist/tests/SM-8.8/topology-orchestration-smoke.spec.d.ts +1 -0
  45. package/dist/tests/SM-8.8/topology-orchestration-smoke.spec.js +58 -0
  46. package/dist/tests/SM-8.9/topology-orchestration-smoke.spec.d.ts +1 -0
  47. package/dist/tests/SM-8.9/topology-orchestration-smoke.spec.js +58 -0
  48. package/dist/tests/c8Run-8.7/connectors-user-flows.spec.js +6 -3
  49. package/dist/tests/c8Run-8.8/connectors-user-flows.spec.js +6 -3
  50. package/dist/tests/c8Run-8.9/connectors-user-flows.spec.js +6 -3
  51. package/dist/utils/modelerCluster.d.ts +4 -6
  52. package/dist/utils/modelerCluster.js +55 -32
  53. package/package.json +1 -1
  54. package/playwright.config.ts +18 -5
@@ -207,12 +207,12 @@ async function modelRestConnector(modelerCreatePage, connectorSettingsPage, conn
207
207
  await (0, test_1.expect)(modelerCreatePage.changeElementSearchInput).toBeVisible({
208
208
  timeout: 30000,
209
209
  });
210
- await modelerCreatePage.changeElementSearchInput.click();
211
- await modelerCreatePage.changeElementSearchInput.fill('');
212
- await modelerCreatePage.changeElementSearchInput.pressSequentially('Send REST Request', { delay: 50 });
213
- await (0, test_1.expect)(modelerCreatePage.restConnectorOption).toBeVisible({
214
- timeout: 15000,
215
- });
210
+ // Connector templates are listed under the popup's "Reusable assets" tab;
211
+ // revealChangeElementTemplate selects it before falling back to search.
212
+ const revealed = await modelerCreatePage.revealChangeElementTemplate(modelerCreatePage.restConnectorOption, 'Send REST Request');
213
+ if (!revealed) {
214
+ throw new Error('Bundled REST connector template not listed');
215
+ }
216
216
  }
217
217
  catch (error) {
218
218
  await modelerCreatePage.clickMarketPlaceButton();
@@ -6,6 +6,7 @@ const LoginPage_1 = require("./LoginPage");
6
6
  const sleep_1 = require("../../utils/sleep");
7
7
  const constants_1 = require("../../utils/constants");
8
8
  const KeycloakUtils_1 = require("../SM-8.7/KeycloakUtils");
9
+ const OPTIMIZE_CONTEXT_PATH = process.env.OPTIMIZE_CONTEXT_PATH || '/optimize';
9
10
  class NavigationPage {
10
11
  page;
11
12
  modelerPageBanner;
@@ -131,7 +132,7 @@ class NavigationPage {
131
132
  await this.goTo('/operate', this.operatePageBanner, sleepTimeout);
132
133
  }
133
134
  async goToOptimize(sleepTimeout) {
134
- await this.goTo('/optimize', this.optimizePageBanner, sleepTimeout);
135
+ await this.goTo(OPTIMIZE_CONTEXT_PATH, this.optimizePageBanner, sleepTimeout);
135
136
  }
136
137
  async goToKeycloak(maxRetries = 5) {
137
138
  const keycloakUrl = process.env.KEYCLOAK_URL
@@ -25,7 +25,8 @@ _8_10_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
25
25
  await (0, _setup_1.captureScreenshot)(page, testInfo);
26
26
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
27
27
  });
28
- (0, _8_10_1.test)('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
28
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
29
+ _8_10_1.test.skip('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
29
30
  _8_10_1.test.slow();
30
31
  const processName = 'REST_Connector_No_Auth_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
31
32
  await _8_10_1.test.step('Navigate to Web Modeler', async () => {
@@ -78,7 +79,8 @@ _8_10_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
78
79
  });
79
80
  });
80
81
  });
81
- (0, _8_10_1.test)('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
82
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
83
+ _8_10_1.test.skip('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
82
84
  _8_10_1.test.slow();
83
85
  const processName = 'REST_Connector_Bearer_Auth_Process' +
84
86
  (await (0, _setup_1.generateRandomStringAsync)(3));
@@ -110,7 +110,8 @@ _8_10_1.test.describe('SaaS Migration Path Tests', () => {
110
110
  await (0, test_1.expect)(page.getByRole('cell', { name: 'Admin' })).toBeVisible();
111
111
  });
112
112
  });
113
- (0, _8_10_1.test)('Assert Connectors Still Function After SaaS Upgrade @tasklistV2', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
113
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
114
+ _8_10_1.test.skip('Assert Connectors Still Function After SaaS Upgrade @tasklistV2', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
114
115
  _8_10_1.test.slow();
115
116
  // Use the same fixed name that was created in the pre-upgrade smoke tests
116
117
  const processName = 'REST_Connector_Basic_Auth_ProcessUpgradeTest';
@@ -292,7 +292,8 @@ _8_10_1.test.describe('Smoke Tests', () => {
292
292
  await optimizeReportPage.assertUserTaskInstanceCountWithRetry(2, appTab, countRetries, Math.floor(flowBudget(countRetries * constants_1.TIMEOUT.navigation) / countRetries));
293
293
  });
294
294
  });
295
- (0, _8_10_1.test)('Most Common REST Connector User Flow', async ({ page, loginPage, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }, testInfo) => {
295
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
296
+ _8_10_1.test.skip('Most Common REST Connector User Flow', async ({ page, loginPage, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }, testInfo) => {
296
297
  _8_10_1.test.slow();
297
298
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
298
299
  const processName = 'REST_Connector_Basic_Auth_Process' + randomString;
@@ -22,7 +22,8 @@ _8_7_1.test.describe('Connectors User Flow Tests', () => {
22
22
  await (0, _setup_1.captureScreenshot)(page, testInfo);
23
23
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
24
24
  });
25
- (0, _8_7_1.test)('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
25
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
26
+ _8_7_1.test.skip('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
26
27
  _8_7_1.test.slow();
27
28
  const processName = 'REST_Connector_No_Auth_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
28
29
  await _8_7_1.test.step('Navigate to Web Modeler', async () => {
@@ -59,7 +60,8 @@ _8_7_1.test.describe('Connectors User Flow Tests', () => {
59
60
  });
60
61
  });
61
62
  });
62
- (0, _8_7_1.test)('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
63
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
64
+ _8_7_1.test.skip('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
63
65
  _8_7_1.test.slow();
64
66
  const processName = 'REST_Connector_Bearer_Auth_Process' +
65
67
  (await (0, _setup_1.generateRandomStringAsync)(3));
@@ -160,7 +162,8 @@ _8_7_1.test.describe('Connectors User Flow Tests', () => {
160
162
  await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(operateProcessInstancePage, operateProcessInstancePage.completedIcon, 'Completed icon', 60000);
161
163
  });
162
164
  });
163
- (0, _8_7_1.test)('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, clusterPage, clusterSecretsPage, }) => {
165
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
166
+ _8_7_1.test.skip('Connector Secrets User Flow - GCP', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, clusterPage, clusterSecretsPage, }) => {
164
167
  _8_7_1.test.slow();
165
168
  const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
166
169
  await _8_7_1.test.step('Navigate to Cluster Secrets', async () => {
@@ -212,7 +215,8 @@ _8_7_1.test.describe('Connectors User Flow Tests', () => {
212
215
  .getByText('"Message from Mock!"'), 'Connector response message', 60000);
213
216
  });
214
217
  });
215
- (0, _8_7_1.test)('Connector Secrets User Flow - AWS', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, clusterPage, clusterSecretsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
218
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
219
+ _8_7_1.test.skip('Connector Secrets User Flow - AWS', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, clusterPage, clusterSecretsPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, }) => {
216
220
  _8_7_1.test.slow();
217
221
  const processName = 'REST_Connector_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
218
222
  await _8_7_1.test.step('Navigate to Cluster Secrets', async () => {
@@ -134,7 +134,8 @@ _8_7_1.test.describe('SaaS Migration Path Tests', () => {
134
134
  });
135
135
  });
136
136
  });
137
- (0, _8_7_1.test)('Assert Connectors Still Function After SaaS Upgrade', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
137
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
138
+ _8_7_1.test.skip('Assert Connectors Still Function After SaaS Upgrade', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
138
139
  _8_7_1.test.slow();
139
140
  // Use the same fixed name that was created in the pre-upgrade smoke tests
140
141
  const processName = 'REST_Connector_Basic_Auth_ProcessUpgradeTest';
@@ -188,7 +188,8 @@ _8_7_1.test.describe('Smoke Tests', () => {
188
188
  });
189
189
  });
190
190
  });
191
- (0, _8_7_1.test)('Most Common REST Connector User Flow', async ({ page, loginPage, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }, testInfo) => {
191
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
192
+ _8_7_1.test.skip('Most Common REST Connector User Flow', async ({ page, loginPage, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }, testInfo) => {
192
193
  _8_7_1.test.slow();
193
194
  const randomString = useFixedNames
194
195
  ? 'UpgradeTest'
@@ -23,7 +23,8 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
23
23
  await (0, _setup_1.captureScreenshot)(page, testInfo);
24
24
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
25
25
  });
26
- (0, _8_8_1.test)('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
26
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
27
+ _8_8_1.test.skip('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
27
28
  _8_8_1.test.slow();
28
29
  const processName = 'REST_Connector_No_Auth_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
29
30
  await _8_8_1.test.step('Navigate to Web Modeler', async () => {
@@ -60,7 +61,8 @@ _8_8_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
60
61
  });
61
62
  });
62
63
  });
63
- (0, _8_8_1.test)('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
64
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
65
+ _8_8_1.test.skip('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
64
66
  _8_8_1.test.slow();
65
67
  const processName = 'REST_Connector_Bearer_Auth_Process' +
66
68
  (await (0, _setup_1.generateRandomStringAsync)(3));
@@ -155,7 +155,8 @@ _8_8_1.test.describe('SaaS Migration Path Tests', () => {
155
155
  await (0, test_1.expect)(page.getByRole('cell', { name: 'Admin' })).toBeVisible();
156
156
  });
157
157
  });
158
- (0, _8_8_1.test)('Assert Connectors Still Function After SaaS Upgrade', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
158
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
159
+ _8_8_1.test.skip('Assert Connectors Still Function After SaaS Upgrade', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
159
160
  _8_8_1.test.slow();
160
161
  // Use the same fixed name that was created in the pre-upgrade smoke tests
161
162
  const processName = 'REST_Connector_Basic_Auth_ProcessUpgradeTest';
@@ -170,7 +170,8 @@ _8_8_1.test.describe('Smoke Tests', () => {
170
170
  });
171
171
  });
172
172
  });
173
- (0, _8_8_1.test)('Most Common REST Connector User Flow', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
173
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
174
+ _8_8_1.test.skip('Most Common REST Connector User Flow', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
174
175
  _8_8_1.test.slow();
175
176
  const randomString = useFixedNames
176
177
  ? 'UpgradeTest'
@@ -24,7 +24,8 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
24
24
  await (0, _setup_1.captureScreenshot)(page, testInfo);
25
25
  await (0, _setup_1.captureFailureVideo)(page, testInfo);
26
26
  });
27
- (0, _8_9_1.test)('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
27
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
28
+ _8_9_1.test.skip('REST Connector No Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
28
29
  _8_9_1.test.slow();
29
30
  const processName = 'REST_Connector_No_Auth_Process' + (await (0, _setup_1.generateRandomStringAsync)(3));
30
31
  await _8_9_1.test.step('Navigate to Web Modeler', async () => {
@@ -64,7 +65,8 @@ _8_9_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
64
65
  });
65
66
  });
66
67
  });
67
- (0, _8_9_1.test)('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
68
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
69
+ _8_9_1.test.skip('REST Connector Bearer Token Auth User Flow', async ({ page, homePage, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
68
70
  _8_9_1.test.slow();
69
71
  const processName = 'REST_Connector_Bearer_Auth_Process' +
70
72
  (await (0, _setup_1.generateRandomStringAsync)(3));
@@ -155,7 +155,8 @@ _8_9_1.test.describe('SaaS Migration Path Tests', () => {
155
155
  await (0, test_1.expect)(page.getByRole('cell', { name: 'Admin' })).toBeVisible();
156
156
  });
157
157
  });
158
- (0, _8_9_1.test)('Assert Connectors Still Function After SaaS Upgrade @tasklistV2', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
158
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
159
+ _8_9_1.test.skip('Assert Connectors Still Function After SaaS Upgrade @tasklistV2', async ({ operateHomePage, appsPage, operateProcessesPage, operateProcessInstancePage, }) => {
159
160
  _8_9_1.test.slow();
160
161
  // Use the same fixed name that was created in the pre-upgrade smoke tests
161
162
  const processName = 'REST_Connector_Basic_Auth_ProcessUpgradeTest';
@@ -181,7 +181,8 @@ _8_9_1.test.describe('Smoke Tests', () => {
181
181
  });
182
182
  });
183
183
  });
184
- (0, _8_9_1.test)('Most Common REST Connector User Flow', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
184
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
185
+ _8_9_1.test.skip('Most Common REST Connector User Flow', async ({ page, modelerHomePage, appsPage, modelerCreatePage, connectorSettingsPage, }) => {
185
186
  _8_9_1.test.slow();
186
187
  const randomString = useFixedNames
187
188
  ? 'UpgradeTest'
@@ -5,7 +5,11 @@ const _setup_1 = require("../../test-setup.js");
5
5
  const test_1 = require("@playwright/test");
6
6
  SM_8_10_1.test.describe.configure({ mode: 'parallel' });
7
7
  SM_8_10_1.test.describe('Cluster Management User Flow Tests', () => {
8
- const defaultTags = ['dev', 'custom', 'stage', 'prod', 'test'];
8
+ // The cluster is configured with tags dev/custom/stage/prod/test, but the
9
+ // Environments/Clusters UI renders recognized lifecycle tags capitalized
10
+ // (Dev/Stage/Prod/Test) while an unrecognized tag like "custom" renders
11
+ // verbatim — assert what's actually displayed.
12
+ const expectedTagLabels = ['Dev', 'custom', 'Stage', 'Prod', 'Test'];
9
13
  const customPropertyDescription = 'This is the main integration environment for the Camunda Platform.';
10
14
  SM_8_10_1.test.beforeEach(async ({ navigationPage }, testInfo) => {
11
15
  await navigationPage.goToClusters((testInfo.workerIndex + 1) * 1000);
@@ -16,11 +20,11 @@ SM_8_10_1.test.describe('Cluster Management User Flow Tests', () => {
16
20
  });
17
21
  (0, SM_8_10_1.test)('Custom Tags', async ({ clusterPage }) => {
18
22
  await SM_8_10_1.test.step('Ensure Custom Tags Appear in Cluster List', async () => {
19
- await clusterPage.assertCustomTagsAreVisible(defaultTags);
23
+ await clusterPage.assertCustomTagsAreVisible(expectedTagLabels);
20
24
  });
21
25
  await SM_8_10_1.test.step('Ensure Custom Tags Appear in Cluster Details', async () => {
22
26
  await clusterPage.clickClusterLink();
23
- await clusterPage.assertCustomTagsAreVisible(defaultTags);
27
+ await clusterPage.assertCustomTagsAreVisible(expectedTagLabels);
24
28
  });
25
29
  });
26
30
  (0, SM_8_10_1.test)('Custom Properties', async ({ clusterPage, clusterDetailsPage, page }) => {
@@ -28,14 +32,17 @@ SM_8_10_1.test.describe('Cluster Management User Flow Tests', () => {
28
32
  await clusterPage.clickClusterLink();
29
33
  });
30
34
  await SM_8_10_1.test.step('Ensure Custom Properties Appear in Modeler and Navigates Links', async () => {
31
- await (0, test_1.expect)(clusterDetailsPage.customPropertiesHeading).toBeVisible({
35
+ await (0, test_1.expect)(clusterDetailsPage.clusterDetailsHeading).toBeVisible({
32
36
  timeout: 60000,
33
37
  });
34
38
  await (0, test_1.expect)(page.getByText(customPropertyDescription)).toBeVisible({
35
39
  timeout: 60000,
36
40
  });
37
- await clusterDetailsPage.assertCustomPropertyIsNavigated('Link 1', 'Camunda', /^https:\/\/(www\.)?camunda\.com\/?$/);
38
- await clusterDetailsPage.assertCustomPropertyIsNavigated('Link 2', 'Camunda Docs', 'https://docs.camunda.io');
41
+ // Both links belong to the same custom property (one description, two
42
+ // links), so both are looked up by that shared description rather than
43
+ // by a per-link row title.
44
+ await clusterDetailsPage.assertCustomPropertyIsNavigated(customPropertyDescription, 'Camunda', /^https:\/\/(www\.)?camunda\.com\/?$/);
45
+ await clusterDetailsPage.assertCustomPropertyIsNavigated(customPropertyDescription, 'Camunda Docs', 'https://docs.camunda.io');
39
46
  });
40
47
  });
41
48
  });
@@ -44,7 +44,8 @@ SM_8_10_1.test.describe('Connectors User Flow Tests @tasklistV2', () => {
44
44
  });
45
45
  });
46
46
  });
47
- (0, SM_8_10_1.test)('REST Connector Bearer Token Auth User Flow', async ({ page, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
47
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
48
+ SM_8_10_1.test.skip('REST Connector Bearer Token Auth User Flow', async ({ page, operateHomePage, modelerHomePage, modelerCreatePage, connectorSettingsPage, navigationPage, operateProcessInstancePage, operateProcessesPage, connectorMarketplacePage, }) => {
48
49
  SM_8_10_1.test.slow();
49
50
  const processName = 'REST_Connector_Bearer_Auth_Process' +
50
51
  (await (0, _setup_1.generateRandomStringAsync)(3));
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const SM_8_10_1 = require("../../fixtures/SM-8.10");
4
+ const _setup_1 = require("../../test-setup.js");
5
+ SM_8_10_1.test.describe('Hub and Web Modeler smoke tests', () => {
6
+ SM_8_10_1.test.afterEach(async ({ page }, testInfo) => {
7
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
8
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
9
+ });
10
+ (0, SM_8_10_1.test)('Deploy and start a process on the selected cluster', async ({ navigationPage, modelerHomePage, modelerCreatePage, }) => {
11
+ const suffix = await (0, _setup_1.generateRandomStringAsync)(5);
12
+ const processName = `Hub_Web_Modeler_Smoke_${suffix}`;
13
+ await SM_8_10_1.test.step('Open Web Modeler and create a BPMN diagram', async () => {
14
+ await navigationPage.goToModeler();
15
+ await modelerHomePage.createCrossComponentProjectFolder();
16
+ await modelerHomePage.clickDiagramTypeDropdown();
17
+ await modelerHomePage.clickBpmnTemplateOption();
18
+ await modelerCreatePage.modelJobWorkerDiagram(processName);
19
+ });
20
+ await SM_8_10_1.test.step('Deploy and start the process on the selected cluster', async () => {
21
+ await modelerCreatePage.runProcessInstance();
22
+ });
23
+ });
24
+ });
@@ -223,6 +223,7 @@ if (process.env.IS_MT === 'true') {
223
223
  await SM_8_10_1.test.step('Open Cross Component Test Project', async () => {
224
224
  await navigationPage.goToModeler(undefined, credentials);
225
225
  await modelerHomePage.createCrossComponentProjectFolder(credentials);
226
+ await modelerHomePage.assignWorkspaceEnvironmentAsOrgAdmin(browser);
226
227
  await modelerHomePage.clickDiagramTypeDropdown();
227
228
  await modelerHomePage.clickBpmnTemplateOption();
228
229
  });
@@ -392,7 +393,8 @@ if (process.env.IS_MT === 'true') {
392
393
  });
393
394
  }
394
395
  });
395
- (0, SM_8_10_1.test)('User Can Be Assigned To Multiple Tenants @tasklistV2', async ({ page, modelerHomePage, modelerCreatePage, operateProcessInstancePage, operateProcessesPage, operateHomePage, navigationPage, managementIdentityTenantPage, connectorSettingsPage, connectorMarketplacePage, ocIdentityHomePage, ocTenantPage, managementIdentityPage, }) => {
396
+ // Skipped due to bug #3673: https://github.com/camunda/c8-cross-component-e2e-tests/issues/3673
397
+ SM_8_10_1.test.skip('User Can Be Assigned To Multiple Tenants @tasklistV2', async ({ page, modelerHomePage, modelerCreatePage, operateProcessInstancePage, operateProcessesPage, operateHomePage, navigationPage, managementIdentityTenantPage, connectorSettingsPage, connectorMarketplacePage, ocIdentityHomePage, ocTenantPage, managementIdentityPage, }) => {
396
398
  SM_8_10_1.test.slow();
397
399
  const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
398
400
  const processName1 = 'Multiple_Tenant_Flow_1' + randomString;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_1 = require("@playwright/test");
4
+ const SM_8_10_1 = require("../../fixtures/SM-8.10");
5
+ const ModelerCreatePage_1 = require("../../pages/SM-8.10/ModelerCreatePage");
6
+ const ModelerHomePage_1 = require("../../pages/SM-8.10/ModelerHomePage");
7
+ const NavigationPage_1 = require("../../pages/SM-8.10/NavigationPage");
8
+ const UtilitiesPage_1 = require("../../pages/SM-8.10/UtilitiesPage");
9
+ const _setup_1 = require("../../test-setup.js");
10
+ SM_8_10_1.test.afterEach(async ({ page }, testInfo) => {
11
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
12
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
13
+ });
14
+ (0, SM_8_10_1.test)('Topology orchestration golden path @tasklistV2', async ({ navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, taskPanelPage, taskDetailsPage, optimizeHomePage, page, request, }) => {
15
+ SM_8_10_1.test.slow();
16
+ const processName = `Topology_Orchestration_${await (0, _setup_1.generateRandomStringAsync)(5)}`;
17
+ const hubNavigationPage = new NavigationPage_1.NavigationPage(page);
18
+ const modelerHomePage = new ModelerHomePage_1.ModelerHomePage(page);
19
+ const modelerCreatePage = new ModelerCreatePage_1.ModelerCreatePage(page);
20
+ await SM_8_10_1.test.step('Create and start a process in Web Modeler', async () => {
21
+ await hubNavigationPage.goToModeler();
22
+ await modelerHomePage.createCrossComponentProjectFolder();
23
+ await modelerHomePage.clickDiagramTypeDropdown();
24
+ await modelerHomePage.clickBpmnTemplateOption();
25
+ await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
26
+ await modelerCreatePage.runProcessInstance();
27
+ });
28
+ await SM_8_10_1.test.step('Assert the process instance is active in Operate', async () => {
29
+ await navigationPage.goToOperate();
30
+ await operateHomePage.clickProcessesTab();
31
+ await operateProcessesPage.clickProcessInstanceLink(processName, 'active');
32
+ const result = await operateProcessInstancePage.assertEitherIncidentOrActiveIconVisible();
33
+ (0, test_1.expect)(result).toBe('active');
34
+ });
35
+ await SM_8_10_1.test.step('Complete the user task in Tasklist', async () => {
36
+ await navigationPage.goToTasklist();
37
+ await (0, UtilitiesPage_1.completeTaskWithRetry)(page, taskPanelPage, taskDetailsPage, processName, 'medium');
38
+ });
39
+ await SM_8_10_1.test.step('Assert the process instance is completed in Operate', async () => {
40
+ await navigationPage.goToOperate();
41
+ await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
42
+ await operateHomePage.clickProcessesTab();
43
+ await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
44
+ const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
45
+ (0, test_1.expect)(result).toBe('completed');
46
+ });
47
+ if (process.env.IS_OPTIMIZE !== 'false') {
48
+ await SM_8_10_1.test.step('Assert the process is imported in Optimize', async () => {
49
+ await navigationPage.goToOptimize();
50
+ await optimizeHomePage.assertProcessHasBeenImported(processName);
51
+ });
52
+ }
53
+ await SM_8_10_1.test.step('Check Connectors readiness', async () => {
54
+ const response = await request.get('/connectors/actuator/health/readiness');
55
+ (0, test_1.expect)(response.status()).toBe(200);
56
+ (0, test_1.expect)(await response.json()).toMatchObject({ status: 'UP' });
57
+ });
58
+ });
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_1 = require("@playwright/test");
4
+ const SM_8_7_1 = require("../../fixtures/SM-8.7");
5
+ const ModelerCreatePage_1 = require("../../pages/SM-8.10/ModelerCreatePage");
6
+ const ModelerHomePage_1 = require("../../pages/SM-8.10/ModelerHomePage");
7
+ const NavigationPage_1 = require("../../pages/SM-8.10/NavigationPage");
8
+ const KeycloakUtils_1 = require("../../pages/SM-8.7/KeycloakUtils");
9
+ const UtlitiesPage_1 = require("../../pages/SM-8.7/UtlitiesPage");
10
+ const _setup_1 = require("../../test-setup.js");
11
+ const env_1 = require("../../utils/env");
12
+ SM_8_7_1.test.afterEach(async ({ page }, testInfo) => {
13
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
14
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
15
+ });
16
+ (0, SM_8_7_1.test)('Topology orchestration golden path', async ({ navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, taskPanelPage, taskDetailsPage, optimizeHomePage, page, request, }) => {
17
+ SM_8_7_1.test.slow();
18
+ const processName = `Topology_Orchestration_${await (0, _setup_1.generateRandomStringAsync)(5)}`;
19
+ const hubNavigationPage = new NavigationPage_1.NavigationPage(page);
20
+ const modelerHomePage = new ModelerHomePage_1.ModelerHomePage(page);
21
+ const modelerCreatePage = new ModelerCreatePage_1.ModelerCreatePage(page);
22
+ (0, KeycloakUtils_1.setAdminUserCredentials)(navigationPage);
23
+ await SM_8_7_1.test.step('Create and start a process in Web Modeler', async () => {
24
+ await hubNavigationPage.goToModeler();
25
+ await modelerHomePage.clickCreateNewProjectButton();
26
+ await modelerHomePage.createCrossComponentProjectFolder();
27
+ await modelerHomePage.clickDiagramTypeDropdown();
28
+ await modelerHomePage.clickBpmnTemplateOption();
29
+ await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
30
+ await modelerCreatePage.runProcessInstance();
31
+ });
32
+ await SM_8_7_1.test.step('Assert the process instance is active in Operate', async () => {
33
+ await navigationPage.goToOperate();
34
+ await operateHomePage.clickProcessesTab();
35
+ await operateProcessesPage.clickProcessInstanceLink(processName);
36
+ const result = await operateProcessInstancePage.assertEitherIncidentOrActiveIconVisible();
37
+ (0, test_1.expect)(result).toBe('active');
38
+ });
39
+ await SM_8_7_1.test.step('Complete the user task in Tasklist', async () => {
40
+ await navigationPage.goToTasklist();
41
+ await (0, UtlitiesPage_1.completeTaskWithRetry)(page, taskPanelPage, taskDetailsPage, processName, 'medium');
42
+ });
43
+ await SM_8_7_1.test.step('Assert the process instance is completed in Operate', async () => {
44
+ await navigationPage.goToOperate();
45
+ await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
46
+ await operateHomePage.clickProcessesTab();
47
+ await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
48
+ const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
49
+ (0, test_1.expect)(result).toBe('completed');
50
+ });
51
+ if (process.env.IS_OPTIMIZE !== 'false' && !env_1.isOpenSearch) {
52
+ await SM_8_7_1.test.step('Assert the process is imported in Optimize', async () => {
53
+ await navigationPage.goToOptimize();
54
+ await optimizeHomePage.assertProcessHasBeenImported(processName);
55
+ });
56
+ }
57
+ await SM_8_7_1.test.step('Check Connectors readiness', async () => {
58
+ const response = await request.get('/connectors/actuator/health/readiness');
59
+ (0, test_1.expect)(response.status()).toBe(200);
60
+ (0, test_1.expect)(await response.json()).toMatchObject({ status: 'UP' });
61
+ });
62
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_1 = require("@playwright/test");
4
+ const SM_8_8_1 = require("../../fixtures/SM-8.8");
5
+ const ModelerCreatePage_1 = require("../../pages/SM-8.10/ModelerCreatePage");
6
+ const ModelerHomePage_1 = require("../../pages/SM-8.10/ModelerHomePage");
7
+ const NavigationPage_1 = require("../../pages/SM-8.10/NavigationPage");
8
+ const UtilitiesPage_1 = require("../../pages/SM-8.8/UtilitiesPage");
9
+ const _setup_1 = require("../../test-setup.js");
10
+ SM_8_8_1.test.afterEach(async ({ page }, testInfo) => {
11
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
12
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
13
+ });
14
+ (0, SM_8_8_1.test)('Topology orchestration golden path @tasklistV2', async ({ navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, taskPanelPage, taskDetailsPage, optimizeHomePage, page, request, }) => {
15
+ SM_8_8_1.test.slow();
16
+ const processName = `Topology_Orchestration_${await (0, _setup_1.generateRandomStringAsync)(5)}`;
17
+ const hubNavigationPage = new NavigationPage_1.NavigationPage(page);
18
+ const modelerHomePage = new ModelerHomePage_1.ModelerHomePage(page);
19
+ const modelerCreatePage = new ModelerCreatePage_1.ModelerCreatePage(page);
20
+ await SM_8_8_1.test.step('Create and start a process in Web Modeler', async () => {
21
+ await hubNavigationPage.goToModeler();
22
+ await modelerHomePage.createCrossComponentProjectFolder();
23
+ await modelerHomePage.clickDiagramTypeDropdown();
24
+ await modelerHomePage.clickBpmnTemplateOption();
25
+ await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
26
+ await modelerCreatePage.runProcessInstance();
27
+ });
28
+ await SM_8_8_1.test.step('Assert the process instance is active in Operate', async () => {
29
+ await navigationPage.goToOperate();
30
+ await operateHomePage.clickProcessesTab();
31
+ await operateProcessesPage.clickProcessInstanceLink(processName, 'active');
32
+ const result = await operateProcessInstancePage.assertEitherIncidentOrActiveIconVisible();
33
+ (0, test_1.expect)(result).toBe('active');
34
+ });
35
+ await SM_8_8_1.test.step('Complete the user task in Tasklist', async () => {
36
+ await navigationPage.goToTasklist();
37
+ await (0, UtilitiesPage_1.completeTaskWithRetry)(page, taskPanelPage, taskDetailsPage, processName, 'medium');
38
+ });
39
+ await SM_8_8_1.test.step('Assert the process instance is completed in Operate', async () => {
40
+ await navigationPage.goToOperate();
41
+ await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
42
+ await operateHomePage.clickProcessesTab();
43
+ await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
44
+ const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
45
+ (0, test_1.expect)(result).toBe('completed');
46
+ });
47
+ if (process.env.IS_OPTIMIZE !== 'false') {
48
+ await SM_8_8_1.test.step('Assert the process is imported in Optimize', async () => {
49
+ await navigationPage.goToOptimize();
50
+ await optimizeHomePage.assertProcessHasBeenImported(processName);
51
+ });
52
+ }
53
+ await SM_8_8_1.test.step('Check Connectors readiness', async () => {
54
+ const response = await request.get('/connectors/actuator/health/readiness');
55
+ (0, test_1.expect)(response.status()).toBe(200);
56
+ (0, test_1.expect)(await response.json()).toMatchObject({ status: 'UP' });
57
+ });
58
+ });
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const test_1 = require("@playwright/test");
4
+ const SM_8_9_1 = require("../../fixtures/SM-8.9");
5
+ const ModelerCreatePage_1 = require("../../pages/SM-8.10/ModelerCreatePage");
6
+ const ModelerHomePage_1 = require("../../pages/SM-8.10/ModelerHomePage");
7
+ const NavigationPage_1 = require("../../pages/SM-8.10/NavigationPage");
8
+ const UtilitiesPage_1 = require("../../pages/SM-8.9/UtilitiesPage");
9
+ const _setup_1 = require("../../test-setup.js");
10
+ SM_8_9_1.test.afterEach(async ({ page }, testInfo) => {
11
+ await (0, _setup_1.captureScreenshot)(page, testInfo);
12
+ await (0, _setup_1.captureFailureVideo)(page, testInfo);
13
+ });
14
+ (0, SM_8_9_1.test)('Topology orchestration golden path @tasklistV2', async ({ navigationPage, operateHomePage, operateProcessesPage, operateProcessInstancePage, taskPanelPage, taskDetailsPage, optimizeHomePage, page, request, }) => {
15
+ SM_8_9_1.test.slow();
16
+ const processName = `Topology_Orchestration_${await (0, _setup_1.generateRandomStringAsync)(5)}`;
17
+ const hubNavigationPage = new NavigationPage_1.NavigationPage(page);
18
+ const modelerHomePage = new ModelerHomePage_1.ModelerHomePage(page);
19
+ const modelerCreatePage = new ModelerCreatePage_1.ModelerCreatePage(page);
20
+ await SM_8_9_1.test.step('Create and start a process in Web Modeler', async () => {
21
+ await hubNavigationPage.goToModeler();
22
+ await modelerHomePage.createCrossComponentProjectFolder();
23
+ await modelerHomePage.clickDiagramTypeDropdown();
24
+ await modelerHomePage.clickBpmnTemplateOption();
25
+ await modelerCreatePage.modelCamundaUserTaskDiagram(processName, processName);
26
+ await modelerCreatePage.runProcessInstance();
27
+ });
28
+ await SM_8_9_1.test.step('Assert the process instance is active in Operate', async () => {
29
+ await navigationPage.goToOperate();
30
+ await operateHomePage.clickProcessesTab();
31
+ await operateProcessesPage.clickProcessInstanceLink(processName, 'active');
32
+ const result = await operateProcessInstancePage.assertEitherIncidentOrActiveIconVisible();
33
+ (0, test_1.expect)(result).toBe('active');
34
+ });
35
+ await SM_8_9_1.test.step('Complete the user task in Tasklist', async () => {
36
+ await navigationPage.goToTasklist();
37
+ await (0, UtilitiesPage_1.completeTaskWithRetry)(page, taskPanelPage, taskDetailsPage, processName, 'medium');
38
+ });
39
+ await SM_8_9_1.test.step('Assert the process instance is completed in Operate', async () => {
40
+ await navigationPage.goToOperate();
41
+ await (0, test_1.expect)(operateHomePage.processesTab).toBeVisible({ timeout: 120000 });
42
+ await operateHomePage.clickProcessesTab();
43
+ await operateProcessesPage.clickProcessInstanceLink(processName, 'completed');
44
+ const result = await operateProcessInstancePage.assertEitherIncidentOrCompletedIconVisible();
45
+ (0, test_1.expect)(result).toBe('completed');
46
+ });
47
+ if (process.env.IS_OPTIMIZE !== 'false') {
48
+ await SM_8_9_1.test.step('Assert the process is imported in Optimize', async () => {
49
+ await navigationPage.goToOptimize();
50
+ await optimizeHomePage.assertProcessHasBeenImported(processName);
51
+ });
52
+ }
53
+ await SM_8_9_1.test.step('Check Connectors readiness', async () => {
54
+ const response = await request.get('/connectors/actuator/health/readiness');
55
+ (0, test_1.expect)(response.status()).toBe(200);
56
+ (0, test_1.expect)(await response.json()).toMatchObject({ status: 'UP' });
57
+ });
58
+ });