@camunda/e2e-test-suite 0.0.771 → 0.0.773
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.
|
@@ -30,6 +30,7 @@ declare class ConnectorSettingsPage {
|
|
|
30
30
|
fillResultVariableInput(variable: string): Promise<void>;
|
|
31
31
|
clickBearerTokenInput(): Promise<void>;
|
|
32
32
|
fillBearerTokenInput(token: string): Promise<void>;
|
|
33
|
+
private clickTabWithRetry;
|
|
33
34
|
clickAuthenticationTab(): Promise<void>;
|
|
34
35
|
clickOutputMappingTab(): Promise<void>;
|
|
35
36
|
clickHTTPEndpointTab(): Promise<void>;
|
|
@@ -111,23 +111,43 @@ class ConnectorSettingsPage {
|
|
|
111
111
|
await this.bearerTokenInput.fill(token);
|
|
112
112
|
await (0, test_1.expect)(this.page.getByText('Bearer token must not be empty.')).not.toBeVisible({ timeout: 30000 });
|
|
113
113
|
}
|
|
114
|
+
// Connector settings tabs can take several seconds to render on slower clusters
|
|
115
|
+
// after the element type is changed. Each clickXxxTab method retries with a
|
|
116
|
+
// reload-free wait so a single slow render doesn't cause a hard timeout failure.
|
|
117
|
+
async clickTabWithRetry(tab, tabName, maxAttempts = 3) {
|
|
118
|
+
let lastError;
|
|
119
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
120
|
+
try {
|
|
121
|
+
await (0, test_1.expect)(tab).toBeVisible({ timeout: 30000 });
|
|
122
|
+
await tab.click({ timeout: 30000 });
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
lastError = err;
|
|
127
|
+
console.warn(`clickTabWithRetry: "${tabName}" attempt ${attempt + 1}/${maxAttempts} failed: ${err instanceof Error ? err.message : err}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
throw lastError instanceof Error
|
|
131
|
+
? lastError
|
|
132
|
+
: new Error(`Tab "${tabName}" not clickable after ${maxAttempts} attempts`);
|
|
133
|
+
}
|
|
114
134
|
async clickAuthenticationTab() {
|
|
115
|
-
await this.authenticationTab
|
|
135
|
+
await this.clickTabWithRetry(this.authenticationTab, 'Authentication');
|
|
116
136
|
}
|
|
117
137
|
async clickOutputMappingTab() {
|
|
118
|
-
await this.outputMappingTab
|
|
138
|
+
await this.clickTabWithRetry(this.outputMappingTab, 'Output mapping');
|
|
119
139
|
}
|
|
120
140
|
async clickHTTPEndpointTab() {
|
|
121
|
-
await this.httpEndpointTab
|
|
141
|
+
await this.clickTabWithRetry(this.httpEndpointTab, 'HTTP endpoint');
|
|
122
142
|
}
|
|
123
143
|
async clickCorrelationTab() {
|
|
124
|
-
await this.correlationTab
|
|
144
|
+
await this.clickTabWithRetry(this.correlationTab, 'Correlation');
|
|
125
145
|
}
|
|
126
146
|
async clickInputTab() {
|
|
127
|
-
await this.inputTab
|
|
147
|
+
await this.clickTabWithRetry(this.inputTab, 'Input');
|
|
128
148
|
}
|
|
129
149
|
async clickWebhookConfigurationTab() {
|
|
130
|
-
await this.webhookConfigurationTab
|
|
150
|
+
await this.clickTabWithRetry(this.webhookConfigurationTab, 'Webhook configuration');
|
|
131
151
|
}
|
|
132
152
|
}
|
|
133
153
|
exports.ConnectorSettingsPage = ConnectorSettingsPage;
|
|
@@ -290,14 +290,14 @@ if (node_process_1.default.env.IS_RBA === 'true') {
|
|
|
290
290
|
await ocIdentityAuthorizationsPage.deleteAuthorization(`${processName}1`, 'PROCESS_DEFINITION');
|
|
291
291
|
await ocIdentityAuthorizationsPage.clickProcessDefinitionTab();
|
|
292
292
|
await ocIdentityAuthorizationsPage.deleteAuthorization(`${processName}2`, 'PROCESS_DEFINITION');
|
|
293
|
-
await (0, sleep_1.sleep)(
|
|
293
|
+
await (0, sleep_1.sleep)(30000);
|
|
294
294
|
});
|
|
295
295
|
await SM_8_10_1.test.step('Navigate to Tasklist and Make Sure that the Two Deployed Processes Are Not Accessible', async () => {
|
|
296
296
|
await navigationPage.goToTasklist(undefined, credentials);
|
|
297
297
|
await taskPanelPage.clickProcessesTab();
|
|
298
298
|
await taskProcessesPage.clickpopupContinueButton();
|
|
299
|
-
await (0, UtilitiesPage_1.
|
|
300
|
-
await (0, UtilitiesPage_1.
|
|
299
|
+
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, page.getByText(`${processName}1`), `${processName}1`, 30000, true);
|
|
300
|
+
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, page.getByText(`${processName}2`), `${processName}2`, 30000, true);
|
|
301
301
|
});
|
|
302
302
|
});
|
|
303
303
|
(0, SM_8_10_1.test)('RBA On User Flow - Permission for One Process @tasklistV1', async ({ page, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, ocIdentityAuthorizationsPage, browser, }, testInfo) => {
|
|
@@ -584,8 +584,8 @@ if (node_process_1.default.env.IS_RBA === 'true') {
|
|
|
584
584
|
await navigationPage.goToTasklist(undefined, credentials);
|
|
585
585
|
await taskPanelPage.clickProcessesTab();
|
|
586
586
|
await taskProcessesPage.clickpopupContinueButton();
|
|
587
|
-
await (0, UtilitiesPage_1.
|
|
588
|
-
await (0, UtilitiesPage_1.
|
|
587
|
+
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, page.getByText(`${processName}1`), `${processName}1`, 30000, true);
|
|
588
|
+
await (0, UtilitiesPage_1.assertLocatorVisibleWithRetry)(page, page.getByText(`${processName}2`), `${processName}2`, 30000, true);
|
|
589
589
|
});
|
|
590
590
|
});
|
|
591
591
|
(0, SM_8_10_1.test)('RBA On User Flow - Permission for All Processes', async ({ page, modelerHomePage, modelerCreatePage, taskPanelPage, taskProcessesPage, operateHomePage, navigationPage, managementIdentityPage, keycloakLoginPage, keycloakAdminPage, ocIdentityHomePage, ocIdentityMappingRulesPage, ocIdentityRolesPage, ocIdentityAuthorizationsPage, browser, }, testInfo) => {
|