@camunda/e2e-test-suite 0.0.1238 → 0.0.1239
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.
|
@@ -31,7 +31,7 @@ declare class AppsPage {
|
|
|
31
31
|
clickCluster(component: Locator, name: string): Promise<void>;
|
|
32
32
|
clickModeler(): Promise<void>;
|
|
33
33
|
private isModelerAuthTransit;
|
|
34
|
-
openModelerWithRetry(banner: Locator, timeout?: number, maxRetries?: number, ready?: Locator): Promise<void>;
|
|
34
|
+
openModelerWithRetry(banner: Locator, timeout?: number, maxRetries?: number, ready?: Locator, beforeReady?: () => Promise<void>): Promise<void>;
|
|
35
35
|
openOperateWithRetry(banner: Locator, clusterName: string, timeout?: number, maxRetries?: number): Promise<void>;
|
|
36
36
|
clickTasklist(clusterName: string): Promise<void>;
|
|
37
37
|
openTasklistWithRetry(banner: Locator, clusterName: string, timeout?: number, maxRetries?: number): Promise<void>;
|
|
@@ -236,8 +236,25 @@ class AppsPage {
|
|
|
236
236
|
// something only an authenticated Modeler renders -- the projects list's
|
|
237
237
|
// create button -- and a logged-out tab is caught here instead, where the
|
|
238
238
|
// retry re-runs the handshake and with it the internal login.
|
|
239
|
-
async openModelerWithRetry(banner, timeout = 60000, maxRetries = 3, ready) {
|
|
239
|
+
async openModelerWithRetry(banner, timeout = 60000, maxRetries = 3, ready, beforeReady) {
|
|
240
240
|
const modelerReady = async () => {
|
|
241
|
+
if (beforeReady) {
|
|
242
|
+
// After the Camunda Hub rebrand the Modeler home greets a first visit
|
|
243
|
+
// with a "Welcome to Camunda Hub" onboarding dialog that mounts a beat
|
|
244
|
+
// after routing and marks the app shell inert, so the banner leaves the
|
|
245
|
+
// accessibility tree until the dialog is dismissed. Run beforeReady
|
|
246
|
+
// (the dialog dismissal) each interval so a dialog that mounts after the
|
|
247
|
+
// first pass is still cleared, instead of burning the whole timeout on a
|
|
248
|
+
// banner the overlay is holding out of reach.
|
|
249
|
+
await (0, test_1.expect)(async () => {
|
|
250
|
+
await beforeReady();
|
|
251
|
+
await (0, test_1.expect)(banner).toBeVisible({ timeout: 15000 });
|
|
252
|
+
if (ready) {
|
|
253
|
+
await (0, test_1.expect)(ready).toBeVisible({ timeout: 15000 });
|
|
254
|
+
}
|
|
255
|
+
}).toPass({ timeout, intervals: [1000, 2000, 5000] });
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
241
258
|
await (0, test_1.expect)(banner).toBeVisible({ timeout });
|
|
242
259
|
if (ready) {
|
|
243
260
|
await (0, test_1.expect)(ready).toBeVisible({ timeout });
|
|
@@ -58,9 +58,19 @@ class ModelerHomePage {
|
|
|
58
58
|
constructor(page) {
|
|
59
59
|
this.page = page;
|
|
60
60
|
this.processApplicationPage = new ProcessApplicationPage_1.ProcessApplicationPage(page);
|
|
61
|
-
|
|
61
|
+
// Hub's design-system shell renders the app header as a role=banner with no
|
|
62
|
+
// accessible name after the Camunda Hub rebrand, so the classic
|
|
63
|
+
// name-matched banner no longer resolves; the Modeler logo link inside it
|
|
64
|
+
// still carries "Camunda Modeler home". Keep the legacy named-banner branch
|
|
65
|
+
// for shells where the rename has not shipped yet.
|
|
66
|
+
this.modelerPageBanner = page
|
|
67
|
+
.getByRole('banner', {
|
|
62
68
|
name: 'Camunda Modeler',
|
|
63
|
-
})
|
|
69
|
+
})
|
|
70
|
+
.or(page
|
|
71
|
+
.getByRole('link', { name: 'Camunda Modeler home' })
|
|
72
|
+
.and(page.locator(':not([href$="/login"])')))
|
|
73
|
+
.first();
|
|
64
74
|
// Hub renamed this button to "Create project" on both the classic and the
|
|
65
75
|
// design-system shell. The legacy label is kept so the flow still works
|
|
66
76
|
// against Modeler builds where the rename has not shipped yet. exact:true
|
|
@@ -168,7 +168,7 @@ _8_10_1.test.describe('Cluster Setup Tests', () => {
|
|
|
168
168
|
await (0, test_1.expect)(homePage.camundaComponentsButton).toBeVisible({
|
|
169
169
|
timeout: 120000,
|
|
170
170
|
});
|
|
171
|
-
await appsPage.openModelerWithRetry(modelerHomePage.modelerPageBanner, 180000);
|
|
171
|
+
await appsPage.openModelerWithRetry(modelerHomePage.modelerPageBanner, 180000, 3, undefined, () => modelerHomePage.dismissBlockingDialog());
|
|
172
172
|
});
|
|
173
173
|
await _8_10_1.test.step('Create Cross Component Project Folder', async () => {
|
|
174
174
|
await (0, UtilitiesPage_1.withSessionRecovery)(page, loginPage, appsPage, modelerHomePage.modelerPageBanner, user, Math.min((testInfo.workerIndex + 1) * 5000, 60000), async () => {
|