@camunda/e2e-test-suite 0.0.748 → 0.0.750
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.
|
@@ -29,6 +29,7 @@ declare class ModelerCreatePage {
|
|
|
29
29
|
readonly deploySubButton: Locator;
|
|
30
30
|
readonly cancelButton: Locator;
|
|
31
31
|
readonly restConnectorOption: Locator;
|
|
32
|
+
readonly changeElementSearchInput: Locator;
|
|
32
33
|
readonly marketPlaceButton: Locator;
|
|
33
34
|
readonly clientIdTextbox: Locator;
|
|
34
35
|
readonly clientSecretTextbox: Locator;
|
|
@@ -34,6 +34,7 @@ class ModelerCreatePage {
|
|
|
34
34
|
deploySubButton;
|
|
35
35
|
cancelButton;
|
|
36
36
|
restConnectorOption;
|
|
37
|
+
changeElementSearchInput;
|
|
37
38
|
marketPlaceButton;
|
|
38
39
|
clientIdTextbox;
|
|
39
40
|
clientSecretTextbox;
|
|
@@ -149,6 +150,7 @@ class ModelerCreatePage {
|
|
|
149
150
|
this.restConnectorOption = page.getByRole('listitem', {
|
|
150
151
|
name: 'REST Outbound Connector',
|
|
151
152
|
});
|
|
153
|
+
this.changeElementSearchInput = page.locator('.djs-popup-search input');
|
|
152
154
|
this.marketPlaceButton = page.getByTitle('Browse Marketplace for more Connectors');
|
|
153
155
|
this.clientIdTextbox = page.getByLabel('Client ID');
|
|
154
156
|
this.clientSecretTextbox = page.getByLabel('Client secret');
|
|
@@ -451,22 +453,38 @@ class ModelerCreatePage {
|
|
|
451
453
|
await this.appendGatewayButton.click({ timeout: 90000 });
|
|
452
454
|
}
|
|
453
455
|
async setEngineVersion(version) {
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
.click({ timeout: 10000 });
|
|
456
|
+
const escapedVersion = version.replace(/\./g, '\\.');
|
|
457
|
+
const versionSelector = this.page.locator('[data-test="version-selector"]');
|
|
457
458
|
// The dropdown renders each version as an outer <label> (Styled.Label)
|
|
458
459
|
// wrapping a radio input and a separate text span ("Camunda X.Y").
|
|
459
460
|
// The radio's accessible name is empty (no label prop passed), so
|
|
460
461
|
// getByRole('radio') won't resolve to the right item by text.
|
|
461
462
|
// Clicking the outer <label> containing the version string triggers
|
|
462
463
|
// the enclosed radio input's onChange via event propagation.
|
|
463
|
-
const
|
|
464
|
-
await this.page
|
|
464
|
+
const versionOption = this.page
|
|
465
465
|
.getByRole('radiogroup', { name: 'Camunda versions' })
|
|
466
466
|
.locator('label')
|
|
467
467
|
.filter({ hasText: new RegExp(`Camunda\\s+${escapedVersion}`) })
|
|
468
|
-
.first()
|
|
469
|
-
|
|
468
|
+
.first();
|
|
469
|
+
// Retry the open-select cycle and confirm via the selector label ("Check
|
|
470
|
+
// problems against: Camunda X.Y"). A label click dropped while the dropdown
|
|
471
|
+
// is still animating silently leaves the diagram on the default (older)
|
|
472
|
+
// version, which greys out the version-gated REST connector downstream.
|
|
473
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
474
|
+
if (await versionSelector.filter({ hasText: version }).isVisible()) {
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
await versionSelector.click({ timeout: 10000 });
|
|
478
|
+
await versionOption.click({ timeout: 5000 });
|
|
479
|
+
const committed = await versionSelector
|
|
480
|
+
.filter({ hasText: version })
|
|
481
|
+
.waitFor({ state: 'visible', timeout: 10000 })
|
|
482
|
+
.then(() => true)
|
|
483
|
+
.catch(() => false);
|
|
484
|
+
if (committed) {
|
|
485
|
+
return;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
470
488
|
}
|
|
471
489
|
async clickChangeTypeButton() {
|
|
472
490
|
try {
|
|
@@ -169,6 +169,20 @@ async function modelRestConnector(modelerCreatePage, connectorSettingsPage, conn
|
|
|
169
169
|
await modelerCreatePage.setEngineVersion('8.10');
|
|
170
170
|
await modelerCreatePage.clickChangeTypeButton();
|
|
171
171
|
try {
|
|
172
|
+
// The change-element popup virtualizes its list: connector templates render
|
|
173
|
+
// below the built-in BPMN tasks and are not in the queryable DOM slice until
|
|
174
|
+
// the list is filtered. Type "REST Outbound" into the popup search box so the
|
|
175
|
+
// bundled REST Outbound Connector (compatible with the 8.10 engine set above)
|
|
176
|
+
// renders and is selected directly. Without this filter the off-screen entry
|
|
177
|
+
// is missed and the flow falls back to the marketplace unnecessarily,
|
|
178
|
+
// exposing it to transient marketplace-API errors even though the connector
|
|
179
|
+
// is already bundled in the modeler.
|
|
180
|
+
await (0, test_1.expect)(modelerCreatePage.changeElementSearchInput).toBeVisible({
|
|
181
|
+
timeout: 30000,
|
|
182
|
+
});
|
|
183
|
+
await modelerCreatePage.changeElementSearchInput.click();
|
|
184
|
+
await modelerCreatePage.changeElementSearchInput.fill('');
|
|
185
|
+
await modelerCreatePage.changeElementSearchInput.pressSequentially('REST Outbound', { delay: 50 });
|
|
172
186
|
await (0, test_1.expect)(modelerCreatePage.restConnectorOption).toBeVisible({
|
|
173
187
|
timeout: 15000,
|
|
174
188
|
});
|
|
@@ -126,7 +126,8 @@ if (process.env.IS_MT === 'true') {
|
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
128
|
});
|
|
129
|
-
|
|
129
|
+
// Skipped due to bug #7716: https://github.com/camunda/connectors/issues/7716
|
|
130
|
+
SM_8_9_1.test.skip('Main User Can Create & Access Tenant - Connectors Flow @tasklistV2', async ({ page, modelerHomePage, modelerCreatePage, operateProcessInstancePage, operateProcessesPage, operateHomePage, navigationPage, managementIdentityTenantPage, connectorSettingsPage, connectorMarketplacePage, optimizeHomePage, optimizeDashboardPage, ocIdentityHomePage, ocTenantPage, }) => {
|
|
130
131
|
SM_8_9_1.test.slow();
|
|
131
132
|
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
132
133
|
const processName = 'Main_User_Connectors_Flow_' + randomString;
|
|
@@ -256,7 +257,8 @@ if (process.env.IS_MT === 'true') {
|
|
|
256
257
|
});
|
|
257
258
|
}
|
|
258
259
|
});
|
|
259
|
-
|
|
260
|
+
// Skipped due to bug #320: https://github.com/camunda/marketplace-api/issues/320
|
|
261
|
+
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
262
|
SM_8_9_1.test.slow();
|
|
261
263
|
const randomString = await (0, _setup_1.generateRandomStringAsync)(3);
|
|
262
264
|
const processName = 'Second_User_Connectors_Flow_' + randomString;
|