@camunda/e2e-test-suite 0.0.662 → 0.0.664
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.
|
@@ -8,8 +8,6 @@ declare class OperateHomePage {
|
|
|
8
8
|
readonly variableValueInput: Locator;
|
|
9
9
|
readonly saveVariableButton: Locator;
|
|
10
10
|
readonly editVariableSpinner: Locator;
|
|
11
|
-
readonly applyButton: Locator;
|
|
12
|
-
readonly openButton: Locator;
|
|
13
11
|
constructor(page: Page);
|
|
14
12
|
operateBannerIsVisible(): Promise<void>;
|
|
15
13
|
clickProcessesTab(): Promise<void>;
|
|
@@ -11,8 +11,6 @@ class OperateHomePage {
|
|
|
11
11
|
variableValueInput;
|
|
12
12
|
saveVariableButton;
|
|
13
13
|
editVariableSpinner;
|
|
14
|
-
applyButton;
|
|
15
|
-
openButton;
|
|
16
14
|
constructor(page) {
|
|
17
15
|
this.page = page;
|
|
18
16
|
this.operateBanner = page.getByRole('link', { name: 'Camunda logo Operate' });
|
|
@@ -22,15 +20,14 @@ class OperateHomePage {
|
|
|
22
20
|
});
|
|
23
21
|
this.editVariableButton = page.getByTestId('edit-variable-button');
|
|
24
22
|
this.variableValueInput = page.getByTestId('edit-variable-value');
|
|
25
|
-
|
|
23
|
+
// Carbon icon-only buttons expose their accessible name via aria-labelledby
|
|
24
|
+
// (tooltip text "Save") which overrides aria-label for computed accessible name.
|
|
25
|
+
// Use a CSS attribute selector to match the raw aria-label attribute directly.
|
|
26
|
+
this.saveVariableButton = page.locator('[aria-label="Save variable"]');
|
|
26
27
|
this.editVariableSpinner = page
|
|
27
28
|
.getByTestId('variable-operation-spinner')
|
|
28
29
|
.locator('circle')
|
|
29
30
|
.nth(1);
|
|
30
|
-
this.applyButton = page.getByRole('button', { name: 'Apply' });
|
|
31
|
-
this.openButton = page
|
|
32
|
-
.getByTestId('variable-testVariable')
|
|
33
|
-
.getByLabel('Open');
|
|
34
31
|
}
|
|
35
32
|
async operateBannerIsVisible() {
|
|
36
33
|
await (0, test_1.expect)(this.operateBanner).toBeVisible({ timeout: 30000 });
|
|
@@ -61,23 +58,23 @@ class OperateHomePage {
|
|
|
61
58
|
await this.variableValueInput.clear();
|
|
62
59
|
}
|
|
63
60
|
async fillVariableValueInput(newValue) {
|
|
64
|
-
|
|
61
|
+
// clickEditVariableButton triggers autoFocus → editor.focus() in Monaco's
|
|
62
|
+
// onMount. Wait for the cursor to confirm Monaco has keyboard focus before
|
|
63
|
+
// sending events. Scoped to the variable row to avoid matching other editors.
|
|
65
64
|
await this.page
|
|
66
|
-
.
|
|
67
|
-
.
|
|
68
|
-
.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
.getByTestId('variable-testVariable')
|
|
66
|
+
.locator('.monaco-editor .cursor')
|
|
67
|
+
.first()
|
|
68
|
+
.waitFor({ state: 'visible', timeout: 30000 });
|
|
69
|
+
// Select all, then replace with insertText (single InputEvent dispatch).
|
|
70
|
+
// keyboard.type() triggers Monaco's auto-close-quote feature which inserts
|
|
71
|
+
// an extra closing quote and produces invalid JSON. insertText dispatches one
|
|
72
|
+
// input event that replaces the selection atomically, bypassing auto-close.
|
|
73
|
+
await this.page.keyboard.press('Control+A');
|
|
74
|
+
await this.page.keyboard.insertText(`"${newValue}`);
|
|
72
75
|
}
|
|
73
76
|
async clickSaveVariableButton() {
|
|
74
|
-
await this.
|
|
75
|
-
try {
|
|
76
|
-
await this.saveVariableButton.click();
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
// additional save not required -> continue
|
|
80
|
-
}
|
|
77
|
+
await this.saveVariableButton.click({ timeout: 30000 });
|
|
81
78
|
}
|
|
82
79
|
}
|
|
83
80
|
exports.OperateHomePage = OperateHomePage;
|