@camunda/e2e-test-suite 0.0.561 → 0.0.563
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.
- package/dist/pages/8.10/HomePage.js +10 -2
- package/dist/pages/8.6/HomePage.js +10 -2
- package/dist/pages/8.7/HomePage.js +10 -2
- package/dist/pages/8.8/HomePage.js +10 -2
- package/dist/pages/8.9/HomePage.js +10 -2
- package/dist/pages/SM-8.7/KeycloakAdminPage.d.ts +1 -1
- package/dist/pages/SM-8.7/KeycloakAdminPage.js +23 -9
- package/dist/pages/SM-8.7/KeycloakLoginPage.d.ts +1 -1
- package/dist/pages/SM-8.7/KeycloakLoginPage.js +15 -2
- package/package.json +1 -1
|
@@ -59,8 +59,16 @@ class HomePage {
|
|
|
59
59
|
await this.organizationTab.click({ timeout: 90000 });
|
|
60
60
|
}
|
|
61
61
|
async closeInformationDialog() {
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
// Console can render more than one informational popup at once (e.g., the
|
|
63
|
+
// customization modal plus a "New features" announcement). Close every visible
|
|
64
|
+
// 'Close' button. Bounded to guard against a regression that re-renders the popup.
|
|
65
|
+
for (let i = 0; i < 5; i++) {
|
|
66
|
+
const next = this.informationDialog.first();
|
|
67
|
+
const visibleTimeout = i === 0 ? 30000 : 2000;
|
|
68
|
+
if (!(await next.isVisible({ timeout: visibleTimeout }))) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
await next.click({ timeout: 30000 });
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
74
|
organizationUuid() {
|
|
@@ -57,8 +57,16 @@ class HomePage {
|
|
|
57
57
|
await this.organizationTab.click({ timeout: 90000 });
|
|
58
58
|
}
|
|
59
59
|
async closeInformationDialog() {
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
// Console can render more than one informational popup at once (e.g., the
|
|
61
|
+
// customization modal plus a "New features" announcement). Close every visible
|
|
62
|
+
// 'Close' button. Bounded to guard against a regression that re-renders the popup.
|
|
63
|
+
for (let i = 0; i < 5; i++) {
|
|
64
|
+
const next = this.informationDialog.first();
|
|
65
|
+
const visibleTimeout = i === 0 ? 30000 : 2000;
|
|
66
|
+
if (!(await next.isVisible({ timeout: visibleTimeout }))) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
await next.click({ timeout: 30000 });
|
|
62
70
|
}
|
|
63
71
|
}
|
|
64
72
|
organizationUuid() {
|
|
@@ -59,8 +59,16 @@ class HomePage {
|
|
|
59
59
|
await this.organizationTab.click({ timeout: 90000 });
|
|
60
60
|
}
|
|
61
61
|
async closeInformationDialog() {
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
// Console can render more than one informational popup at once (e.g., the
|
|
63
|
+
// customization modal plus a "New features" announcement). Close every visible
|
|
64
|
+
// 'Close' button. Bounded to guard against a regression that re-renders the popup.
|
|
65
|
+
for (let i = 0; i < 5; i++) {
|
|
66
|
+
const next = this.informationDialog.first();
|
|
67
|
+
const visibleTimeout = i === 0 ? 30000 : 2000;
|
|
68
|
+
if (!(await next.isVisible({ timeout: visibleTimeout }))) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
await next.click({ timeout: 30000 });
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
74
|
organizationUuid() {
|
|
@@ -59,8 +59,16 @@ class HomePage {
|
|
|
59
59
|
await this.organizationTab.click({ timeout: 90000 });
|
|
60
60
|
}
|
|
61
61
|
async closeInformationDialog() {
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
// Console can render more than one informational popup at once (e.g., the
|
|
63
|
+
// customization modal plus a "New features" announcement). Close every visible
|
|
64
|
+
// 'Close' button. Bounded to guard against a regression that re-renders the popup.
|
|
65
|
+
for (let i = 0; i < 5; i++) {
|
|
66
|
+
const next = this.informationDialog.first();
|
|
67
|
+
const visibleTimeout = i === 0 ? 30000 : 2000;
|
|
68
|
+
if (!(await next.isVisible({ timeout: visibleTimeout }))) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
await next.click({ timeout: 30000 });
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
74
|
organizationUuid() {
|
|
@@ -59,8 +59,16 @@ class HomePage {
|
|
|
59
59
|
await this.organizationTab.click({ timeout: 90000 });
|
|
60
60
|
}
|
|
61
61
|
async closeInformationDialog() {
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
// Console can render more than one informational popup at once (e.g., the
|
|
63
|
+
// customization modal plus a "New features" announcement). Close every visible
|
|
64
|
+
// 'Close' button. Bounded to guard against a regression that re-renders the popup.
|
|
65
|
+
for (let i = 0; i < 5; i++) {
|
|
66
|
+
const next = this.informationDialog.first();
|
|
67
|
+
const visibleTimeout = i === 0 ? 30000 : 2000;
|
|
68
|
+
if (!(await next.isVisible({ timeout: visibleTimeout }))) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
await next.click({ timeout: 30000 });
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
74
|
organizationUuid() {
|
|
@@ -13,7 +13,7 @@ declare class KeycloakAdminPage {
|
|
|
13
13
|
clickAddUser(): Promise<void>;
|
|
14
14
|
fillUser(username: string): Promise<void>;
|
|
15
15
|
saveUser(): Promise<void>;
|
|
16
|
-
fillPassword(password: string): Promise<void>;
|
|
16
|
+
fillPassword(password: string, maxRetries?: number): Promise<void>;
|
|
17
17
|
savePassword(): Promise<void>;
|
|
18
18
|
}
|
|
19
19
|
export { KeycloakAdminPage };
|
|
@@ -69,15 +69,29 @@ class KeycloakAdminPage {
|
|
|
69
69
|
async saveUser() {
|
|
70
70
|
await this.page.getByTestId('user-creation-save').click();
|
|
71
71
|
}
|
|
72
|
-
async fillPassword(password) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
async fillPassword(password, maxRetries = 3) {
|
|
73
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
74
|
+
try {
|
|
75
|
+
await (0, test_1.expect)(this.credentialsTab).toBeVisible();
|
|
76
|
+
await this.credentialsTab.click();
|
|
77
|
+
await (0, test_1.expect)(this.noCredentialsEmptyAction).toBeVisible({
|
|
78
|
+
timeout: 60000,
|
|
79
|
+
});
|
|
80
|
+
await this.noCredentialsEmptyAction.click();
|
|
81
|
+
await (0, test_1.expect)(this.passwordField).toBeVisible();
|
|
82
|
+
await this.passwordField.fill(password);
|
|
83
|
+
await (0, test_1.expect)(this.passwordConfirmationField).toBeVisible();
|
|
84
|
+
await this.passwordConfirmationField.fill(password);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
if (attempt === maxRetries) {
|
|
89
|
+
throw new Error(`fillPassword failed after ${maxRetries} attempts: ${error}`);
|
|
90
|
+
}
|
|
91
|
+
console.warn(`fillPassword attempt ${attempt} failed: ${error}. Retrying...`);
|
|
92
|
+
await (0, sleep_1.sleep)(3000);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
81
95
|
}
|
|
82
96
|
async savePassword() {
|
|
83
97
|
await this.page
|
|
@@ -5,7 +5,7 @@ declare class KeycloakLoginPage {
|
|
|
5
5
|
constructor(page: Page);
|
|
6
6
|
toBeVisible(): Promise<void>;
|
|
7
7
|
fillUsername(username: string): Promise<void>;
|
|
8
|
-
fillPassword(password: string): Promise<void>;
|
|
8
|
+
fillPassword(password: string, maxRetries?: number): Promise<void>;
|
|
9
9
|
clickLogin(): Promise<void>;
|
|
10
10
|
}
|
|
11
11
|
export { KeycloakLoginPage };
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.KeycloakLoginPage = void 0;
|
|
4
4
|
const test_1 = require("@playwright/test");
|
|
5
|
+
const sleep_1 = require("../../utils/sleep");
|
|
5
6
|
class KeycloakLoginPage {
|
|
6
7
|
page;
|
|
7
8
|
keycloakBanner;
|
|
@@ -15,8 +16,20 @@ class KeycloakLoginPage {
|
|
|
15
16
|
async fillUsername(username) {
|
|
16
17
|
await this.page.fill('#username', username);
|
|
17
18
|
}
|
|
18
|
-
async fillPassword(password) {
|
|
19
|
-
|
|
19
|
+
async fillPassword(password, maxRetries = 3) {
|
|
20
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
21
|
+
try {
|
|
22
|
+
await this.page.fill('#password', password);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (attempt === maxRetries) {
|
|
27
|
+
throw new Error(`fillPassword failed after ${maxRetries} attempts: ${error}`);
|
|
28
|
+
}
|
|
29
|
+
console.warn(`fillPassword attempt ${attempt} failed: ${error}. Retrying...`);
|
|
30
|
+
await (0, sleep_1.sleep)(3000);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
20
33
|
}
|
|
21
34
|
async clickLogin() {
|
|
22
35
|
await this.page.click('button[type="submit"]');
|