@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
|
-
|
|
455
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|