@camunda/e2e-test-suite 0.0.575 → 0.0.577
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.
|
@@ -477,12 +477,14 @@ class ModelerCreatePage {
|
|
|
477
477
|
if (this.page.isClosed()) {
|
|
478
478
|
throw new Error('Target page, context or browser has been closed');
|
|
479
479
|
}
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
480
|
+
// web-modeler 8.7-SNAPSHOT replaced the combined "Deploy & run" button
|
|
481
|
+
// with separate "Deploy" and "Run" buttons. "Run" (startInstanceMainButton)
|
|
482
|
+
// deploys and starts the instance in one click, matching the old combined behaviour.
|
|
483
|
+
await this.startInstanceMainButton.waitFor({
|
|
484
|
+
state: 'visible',
|
|
485
|
+
timeout: 30000,
|
|
486
|
+
});
|
|
487
|
+
await this.startInstanceMainButton.click({ timeout: 30000 });
|
|
486
488
|
return;
|
|
487
489
|
}
|
|
488
490
|
catch (error) {
|
|
@@ -749,6 +751,11 @@ class ModelerCreatePage {
|
|
|
749
751
|
catch (error) {
|
|
750
752
|
if (attempt === 3)
|
|
751
753
|
throw error; // Rethrow after 3 failed attempts
|
|
754
|
+
// Recovery: reload to re-render the canvas, then re-select the start
|
|
755
|
+
// event so the context pad (append button) becomes available again.
|
|
756
|
+
await this.page.reload();
|
|
757
|
+
await (0, test_1.expect)(this.generalPanel).toBeVisible({ timeout: 30000 });
|
|
758
|
+
await this.startEventElement.click({ timeout: 10000 }).catch(() => { });
|
|
752
759
|
}
|
|
753
760
|
}
|
|
754
761
|
}
|
|
@@ -65,9 +65,7 @@ class ModelerHomePage {
|
|
|
65
65
|
this.uploadFilesButton = page.getByRole('menuitem', { name: 'Upload files' });
|
|
66
66
|
}
|
|
67
67
|
async clickCreateNewProjectButton() {
|
|
68
|
-
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.createNewProjectButton
|
|
69
|
-
totalTimeout: 30000,
|
|
70
|
-
});
|
|
68
|
+
await (0, expectLocatorWithRetry_1.expectLocatorWithRetry)(this.page, this.createNewProjectButton);
|
|
71
69
|
await this.createNewProjectButton.click({ timeout: 10000 });
|
|
72
70
|
}
|
|
73
71
|
async enterNewProjectName(name) {
|
|
@@ -81,14 +81,21 @@ class NavigationPage {
|
|
|
81
81
|
await loginPage.login(this.activeUser, this.activePassword);
|
|
82
82
|
}
|
|
83
83
|
catch (error) {
|
|
84
|
-
// The login selector did NOT appear
|
|
85
|
-
//
|
|
84
|
+
// The login selector did NOT appear within 5 s. Fall through to the
|
|
85
|
+
// final banner check — if a delayed Keycloak redirect fires after
|
|
86
|
+
// that window the banner will be gone and the check will throw,
|
|
87
|
+
// triggering a retry rather than silently returning on the wrong page.
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
else {
|
|
89
91
|
// The login page was visible from the start.
|
|
90
92
|
await loginPage.login(this.activeUser, this.activePassword);
|
|
91
93
|
}
|
|
94
|
+
// Final guard: confirm we actually landed on the target page.
|
|
95
|
+
// A Keycloak redirect that fires more than 5 s after the banner
|
|
96
|
+
// first appears (common after context.clearCookies() + long beforeEach)
|
|
97
|
+
// is caught here and turns into a retry rather than a silent wrong-page return.
|
|
98
|
+
await (0, test_1.expect)(banner).toBeVisible({ timeout: 30000 });
|
|
92
99
|
return; // End of successful navigation/login
|
|
93
100
|
}
|
|
94
101
|
catch (error) {
|
|
@@ -54,9 +54,7 @@ class PlayPage {
|
|
|
54
54
|
this.confirmDeleteScenarioButton = page.getByRole('button', {
|
|
55
55
|
name: 'danger Delete',
|
|
56
56
|
});
|
|
57
|
-
this.viewAllScenariosButton = page
|
|
58
|
-
.getByRole('button', { name: '(View all)' })
|
|
59
|
-
.first();
|
|
57
|
+
this.viewAllScenariosButton = page.getByText('(View all)').last();
|
|
60
58
|
this.getScenarioRowByName = (scenarioName) => page.locator('tr', { hasText: scenarioName });
|
|
61
59
|
this.getScenarioRow = (scenarioName) => page.locator('tr', { hasText: scenarioName });
|
|
62
60
|
this.diagram = page.getByTestId('diagram');
|
|
@@ -221,6 +219,14 @@ class PlayPage {
|
|
|
221
219
|
.waitFor({ state: 'hidden', timeout: 10000 })
|
|
222
220
|
.catch(() => { });
|
|
223
221
|
},
|
|
222
|
+
postAction: async () => {
|
|
223
|
+
// Recovery: reload the page so the Play UI re-fetches scenario state
|
|
224
|
+
// and renders the "(View all)" button when multiple scenarios exist.
|
|
225
|
+
await this.page.reload();
|
|
226
|
+
await this.diagram
|
|
227
|
+
.waitFor({ state: 'visible', timeout: 30000 })
|
|
228
|
+
.catch(() => { });
|
|
229
|
+
},
|
|
224
230
|
});
|
|
225
231
|
}
|
|
226
232
|
async confirmSaveScenario() {
|