@digital-ai/devops-page-object-release 0.0.58 → 0.0.60
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/CHANGELOG.md +17 -0
- package/dist/main.js +605 -45
- package/dist/main.js.map +1 -1
- package/dist/module.js +605 -45
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +133 -10
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/module.js
CHANGED
|
@@ -3570,7 +3570,7 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
|
|
|
3570
3570
|
}
|
|
3571
3571
|
async expectSnackbarSuccessMessage(message) {
|
|
3572
3572
|
const snackbar = this.page.locator('.dot-snackbar[severity="success"]');
|
|
3573
|
-
await (0, $hOLA6$expect)(snackbar.locator("
|
|
3573
|
+
await (0, $hOLA6$expect)(snackbar.locator('[aria-label="success"]')).toHaveText(message);
|
|
3574
3574
|
await snackbar.getByRole("button").click();
|
|
3575
3575
|
}
|
|
3576
3576
|
async closeContextMenu() {
|
|
@@ -3579,6 +3579,12 @@ class $43cbcdfccb6c2a76$var$Phase extends (0, $9626bc9256ce31f7$export$2b65d1d97
|
|
|
3579
3579
|
async expectTaskBorderWithColor(taskName, color) {
|
|
3580
3580
|
await (0, $hOLA6$expect)(this.page.locator(`.task-box:has-text('${taskName}')`)).toHaveCSS("border-top-color", color);
|
|
3581
3581
|
}
|
|
3582
|
+
async pasteTaskFromTaskGenerator() {
|
|
3583
|
+
await this.phaseLocator.getByText("Add task").click();
|
|
3584
|
+
const pasteButton = this.page.locator('button[data-testid="paste-copied-task-btn"]');
|
|
3585
|
+
await (0, $hOLA6$expect)(pasteButton).toBeEnabled();
|
|
3586
|
+
await pasteButton.click();
|
|
3587
|
+
}
|
|
3582
3588
|
async addTaskInPhase(taskTitle, taskGroup, taskType) {
|
|
3583
3589
|
await this.phaseLocator.getByText("Add task").click();
|
|
3584
3590
|
await this.page.locator("#task-selector").hover();
|
|
@@ -7355,53 +7361,20 @@ class $a4ba753fcd18eb4a$var$RisksProfilePage extends (0, $9626bc9256ce31f7$expor
|
|
|
7355
7361
|
|
|
7356
7362
|
|
|
7357
7363
|
|
|
7358
|
-
|
|
7359
7364
|
class $d8a9b26df8057088$export$e0a0fc7a891dfa75 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
7360
7365
|
constructor(page){
|
|
7361
7366
|
super(page);
|
|
7362
7367
|
}
|
|
7363
|
-
async expectCards(cardTitles) {
|
|
7364
|
-
await (0, $hOLA6$expect)(this.page.locator(`.settings-card`)).toHaveCount(cardTitles.length);
|
|
7365
|
-
for(let i = 0; i < cardTitles.length; i++){
|
|
7366
|
-
const cardTitle = cardTitles[i];
|
|
7367
|
-
await (0, $hOLA6$expect)(this.page.locator(`.settings-card`).filter({
|
|
7368
|
-
hasText: cardTitle
|
|
7369
|
-
})).toBeVisible();
|
|
7370
|
-
}
|
|
7371
|
-
return this;
|
|
7372
|
-
}
|
|
7373
|
-
async save() {
|
|
7374
|
-
await this.page.getByTestId(`save-button`).click();
|
|
7375
|
-
await (0, $hOLA6$expect)(this.page.getByLabel("success")).toBeVisible();
|
|
7376
|
-
await (0, $hOLA6$expect)(this.page.locator(".success").filter({
|
|
7377
|
-
hasText: "Changes saved successfully"
|
|
7378
|
-
})).toBeVisible();
|
|
7379
|
-
await (0, $hOLA6$expect)(this.page.getByTestId(`save-button`)).toBeDisabled();
|
|
7380
|
-
return this;
|
|
7381
|
-
}
|
|
7382
|
-
async reset() {
|
|
7383
|
-
await this.page.getByTestId(`reset-button`).click();
|
|
7384
|
-
await (0, $hOLA6$expect)(this.page.getByTestId("reset-button")).toBeDisabled();
|
|
7385
|
-
return this;
|
|
7386
|
-
}
|
|
7387
7368
|
}
|
|
7388
7369
|
|
|
7389
7370
|
|
|
7390
7371
|
|
|
7391
7372
|
|
|
7373
|
+
|
|
7392
7374
|
class $ffe2117ab68d6e97$export$c28592575acb4efc extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
7393
7375
|
constructor(page){
|
|
7394
7376
|
super(page);
|
|
7395
|
-
|
|
7396
|
-
async expectCards(cardTitles) {
|
|
7397
|
-
await (0, $hOLA6$expect)(this.page.locator(`.settings-card .dot-card-header-title`)).toHaveCount(cardTitles.length);
|
|
7398
|
-
for(let i = 0; i < cardTitles.length; i++){
|
|
7399
|
-
const cardTitle = cardTitles[i];
|
|
7400
|
-
await (0, $hOLA6$expect)(this.page.locator(`.settings-card .dot-card-header-title`).filter({
|
|
7401
|
-
hasText: cardTitle
|
|
7402
|
-
})).toBeVisible();
|
|
7403
|
-
}
|
|
7404
|
-
return this;
|
|
7377
|
+
this.settings = new (0, $2cbb78eec86d0a9f$export$2edf430132ca35d0)(page);
|
|
7405
7378
|
}
|
|
7406
7379
|
async getFeatureControl(feature, control) {
|
|
7407
7380
|
return this.page.locator(`.settings-card`).filter({
|
|
@@ -7418,15 +7391,6 @@ class $ffe2117ab68d6e97$export$c28592575acb4efc extends (0, $9626bc9256ce31f7$ex
|
|
|
7418
7391
|
else await (0, $hOLA6$expect)(this.page.getByTestId(`save-button`)).not.toBeEnabled();
|
|
7419
7392
|
return this;
|
|
7420
7393
|
}
|
|
7421
|
-
async save() {
|
|
7422
|
-
await this.page.getByTestId(`save-button`).click();
|
|
7423
|
-
await (0, $hOLA6$expect)(this.page.getByLabel("success")).toBeVisible();
|
|
7424
|
-
await (0, $hOLA6$expect)(this.page.locator(".success").filter({
|
|
7425
|
-
hasText: "Changes saved successfully"
|
|
7426
|
-
})).toBeVisible();
|
|
7427
|
-
await (0, $hOLA6$expect)(this.page.getByTestId(`save-button`)).toBeDisabled();
|
|
7428
|
-
return this;
|
|
7429
|
-
}
|
|
7430
7394
|
async expectResetToBeEnabled(state) {
|
|
7431
7395
|
if (state) await (0, $hOLA6$expect)(this.page.getByTestId("reset-button")).toBeEnabled();
|
|
7432
7396
|
else await (0, $hOLA6$expect)(this.page.getByTestId("reset-button")).not.toBeEnabled();
|
|
@@ -7445,6 +7409,508 @@ class $ffe2117ab68d6e97$export$c28592575acb4efc extends (0, $9626bc9256ce31f7$ex
|
|
|
7445
7409
|
}
|
|
7446
7410
|
|
|
7447
7411
|
|
|
7412
|
+
|
|
7413
|
+
|
|
7414
|
+
|
|
7415
|
+
class $a736ba10591716ab$export$c33e44a4a9202d88 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
7416
|
+
constructor(page){
|
|
7417
|
+
super(page);
|
|
7418
|
+
this.settings = new (0, $2cbb78eec86d0a9f$export$2edf430132ca35d0)(page);
|
|
7419
|
+
}
|
|
7420
|
+
async setStatusPollingInterval(value) {
|
|
7421
|
+
await this.page.locator("#taskStatusInterval").clear();
|
|
7422
|
+
await this.page.locator("#taskStatusInterval").fill(value);
|
|
7423
|
+
return this;
|
|
7424
|
+
}
|
|
7425
|
+
async setListPollingInterval(value) {
|
|
7426
|
+
await this.page.locator("#taskListInterval").clear();
|
|
7427
|
+
await this.page.locator("#taskListInterval").fill(value);
|
|
7428
|
+
return this;
|
|
7429
|
+
}
|
|
7430
|
+
async expectStatusPollingInterval(value) {
|
|
7431
|
+
await (0, $hOLA6$expect)(this.page.locator("#taskStatusInterval")).toHaveValue(value);
|
|
7432
|
+
return this;
|
|
7433
|
+
}
|
|
7434
|
+
async expectListPollingInterval(value) {
|
|
7435
|
+
await (0, $hOLA6$expect)(this.page.locator("#taskListInterval")).toHaveValue(value);
|
|
7436
|
+
return this;
|
|
7437
|
+
}
|
|
7438
|
+
async restoreDefaultPollingSettings() {
|
|
7439
|
+
const defaultTaskStatusInterval = "1";
|
|
7440
|
+
const defaultTaskListInterval = "30";
|
|
7441
|
+
await this.setStatusPollingInterval(defaultTaskStatusInterval);
|
|
7442
|
+
await this.setListPollingInterval(defaultTaskListInterval);
|
|
7443
|
+
await this.settings.save();
|
|
7444
|
+
return this;
|
|
7445
|
+
}
|
|
7446
|
+
}
|
|
7447
|
+
|
|
7448
|
+
|
|
7449
|
+
|
|
7450
|
+
|
|
7451
|
+
|
|
7452
|
+
class $ff784d6668c5e820$export$5c92082c2afdcc2c extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
7453
|
+
constructor(page){
|
|
7454
|
+
super(page);
|
|
7455
|
+
this.settings = new (0, $2cbb78eec86d0a9f$export$2edf430132ca35d0)(page);
|
|
7456
|
+
}
|
|
7457
|
+
async setWarningThreshold(value) {
|
|
7458
|
+
await this.page.locator("#warningThreshold").clear();
|
|
7459
|
+
await this.page.locator("#warningThreshold").fill(value);
|
|
7460
|
+
return this;
|
|
7461
|
+
}
|
|
7462
|
+
async setErrorThreshold(value) {
|
|
7463
|
+
await this.page.locator("#errorThreshold").clear();
|
|
7464
|
+
await this.page.locator("#errorThreshold").fill(value);
|
|
7465
|
+
return this;
|
|
7466
|
+
}
|
|
7467
|
+
async setCriticalPhaseThreshold(value) {
|
|
7468
|
+
await this.page.locator("#criticalPhaseThreshold").clear();
|
|
7469
|
+
await this.page.locator("#criticalPhaseThreshold").fill(value);
|
|
7470
|
+
return this;
|
|
7471
|
+
}
|
|
7472
|
+
async expectWarningThreshold(value) {
|
|
7473
|
+
await (0, $hOLA6$expect)(this.page.locator("#warningThreshold")).toHaveValue(value);
|
|
7474
|
+
return this;
|
|
7475
|
+
}
|
|
7476
|
+
async expectErrorThreshold(value) {
|
|
7477
|
+
await (0, $hOLA6$expect)(this.page.locator("#errorThreshold")).toHaveValue(value);
|
|
7478
|
+
return this;
|
|
7479
|
+
}
|
|
7480
|
+
async expectCriticalPhaseThreshold(value) {
|
|
7481
|
+
await (0, $hOLA6$expect)(this.page.locator("#criticalPhaseThreshold")).toHaveValue(value);
|
|
7482
|
+
return this;
|
|
7483
|
+
}
|
|
7484
|
+
async restoreDefaultReportSettings() {
|
|
7485
|
+
const defaultWarningThreshold = "2";
|
|
7486
|
+
const defaultErrorThreshold = "4";
|
|
7487
|
+
const defaultCriticalPhaseThreshold = "6";
|
|
7488
|
+
await this.setWarningThreshold(defaultWarningThreshold);
|
|
7489
|
+
await this.setErrorThreshold(defaultErrorThreshold);
|
|
7490
|
+
await this.setCriticalPhaseThreshold(defaultCriticalPhaseThreshold);
|
|
7491
|
+
await this.settings.save();
|
|
7492
|
+
}
|
|
7493
|
+
}
|
|
7494
|
+
|
|
7495
|
+
|
|
7496
|
+
|
|
7497
|
+
|
|
7498
|
+
|
|
7499
|
+
class $4f618685ec16216c$export$3966fb3c0478db68 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
7500
|
+
constructor(page){
|
|
7501
|
+
super(page);
|
|
7502
|
+
this.settings = new (0, $2cbb78eec86d0a9f$export$2edf430132ca35d0)(page);
|
|
7503
|
+
}
|
|
7504
|
+
async setArchivingSettingsDeleteIntervalUnit(value) {
|
|
7505
|
+
const setDeleteInterval = this.page.locator("select#time-selector-releaseAgeToDeleteFromJcr");
|
|
7506
|
+
await setDeleteInterval.scrollIntoViewIfNeeded();
|
|
7507
|
+
await setDeleteInterval.selectOption(value);
|
|
7508
|
+
return this;
|
|
7509
|
+
}
|
|
7510
|
+
async expectArchivePurgeEnableState(value) {
|
|
7511
|
+
if (value) await (0, $hOLA6$expect)(this.page.locator("#purgingEnabled")).toBeChecked();
|
|
7512
|
+
else await (0, $hOLA6$expect)(this.page.locator("#purgingEnabled")).not.toBeChecked();
|
|
7513
|
+
return this;
|
|
7514
|
+
}
|
|
7515
|
+
async setArchivePurgeEnableState(value) {
|
|
7516
|
+
if (value) await this.page.locator("#purgingEnabled").check({
|
|
7517
|
+
force: true
|
|
7518
|
+
});
|
|
7519
|
+
else await this.page.locator("#purgingEnabled").uncheck({
|
|
7520
|
+
force: true
|
|
7521
|
+
});
|
|
7522
|
+
return this;
|
|
7523
|
+
}
|
|
7524
|
+
async expectConfirmEnableArchivePurgeModal() {
|
|
7525
|
+
await (0, $hOLA6$expect)(this.page.getByRole("heading", {
|
|
7526
|
+
name: "Verify archive purge change"
|
|
7527
|
+
})).toBeVisible();
|
|
7528
|
+
await (0, $hOLA6$expect)(this.page.locator(".dot-dialog")).toBeVisible();
|
|
7529
|
+
return this;
|
|
7530
|
+
}
|
|
7531
|
+
async confirmEnableArchivePurgeModal() {
|
|
7532
|
+
await (0, $hOLA6$expect)(this.page.getByRole("button", {
|
|
7533
|
+
name: "Confirm"
|
|
7534
|
+
})).toBeVisible();
|
|
7535
|
+
await this.page.getByRole("button", {
|
|
7536
|
+
name: "Confirm"
|
|
7537
|
+
}).click();
|
|
7538
|
+
return this;
|
|
7539
|
+
}
|
|
7540
|
+
async cancelEnableArchivePurgeModal() {
|
|
7541
|
+
await (0, $hOLA6$expect)(this.page.getByRole("button", {
|
|
7542
|
+
name: "Cancel"
|
|
7543
|
+
})).toBeVisible();
|
|
7544
|
+
await this.page.getByRole("button", {
|
|
7545
|
+
name: "Cancel"
|
|
7546
|
+
}).click();
|
|
7547
|
+
return this;
|
|
7548
|
+
}
|
|
7549
|
+
async setMaxArchiveRetentionPeriodIntervalUnit(value) {
|
|
7550
|
+
await this.page.locator("#time-selector-maximumArchiveRetentionPeriod").selectOption(value);
|
|
7551
|
+
return this;
|
|
7552
|
+
}
|
|
7553
|
+
async setMaxArchiveRetentionPeriodInterval(value) {
|
|
7554
|
+
await this.page.getByRole("spinbutton", {
|
|
7555
|
+
name: "Maximum archive retention"
|
|
7556
|
+
}).fill(value);
|
|
7557
|
+
return this;
|
|
7558
|
+
}
|
|
7559
|
+
async expectInputFieldToBeDisabled(fieldName) {
|
|
7560
|
+
await (0, $hOLA6$expect)(this.page.getByRole("spinbutton", {
|
|
7561
|
+
name: fieldName
|
|
7562
|
+
})).toHaveAttribute("readonly", "");
|
|
7563
|
+
return this;
|
|
7564
|
+
}
|
|
7565
|
+
}
|
|
7566
|
+
|
|
7567
|
+
|
|
7568
|
+
|
|
7569
|
+
|
|
7570
|
+
|
|
7571
|
+
class $57e4c422d5be5549$export$399378eed9c024e7 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
7572
|
+
constructor(page){
|
|
7573
|
+
super(page);
|
|
7574
|
+
}
|
|
7575
|
+
async getTasksTableElement() {
|
|
7576
|
+
return this.page.locator(".tasks-table table");
|
|
7577
|
+
}
|
|
7578
|
+
async getTasksTableRows() {
|
|
7579
|
+
return (await this.getTasksTableElement()).locator("tbody tr");
|
|
7580
|
+
}
|
|
7581
|
+
async getEventElement(eventName) {
|
|
7582
|
+
return this.page.locator(`tbody > tr `).filter({
|
|
7583
|
+
hasText: eventName
|
|
7584
|
+
});
|
|
7585
|
+
}
|
|
7586
|
+
async getEventRowElement(eventName) {
|
|
7587
|
+
return (await this.getEventElement(eventName)).locator("td");
|
|
7588
|
+
}
|
|
7589
|
+
async findAddTagInputElementOnRow(eventRowElement) {
|
|
7590
|
+
return eventRowElement.locator("input[type=text].tag-input");
|
|
7591
|
+
}
|
|
7592
|
+
async getTasksEventIdSearchInput() {
|
|
7593
|
+
return (await this.getTasksTableElement()).locator(".with-search > input[type=text]").first();
|
|
7594
|
+
}
|
|
7595
|
+
async getSuggestedRoleElement(roleName) {
|
|
7596
|
+
return this.page.locator(`.xlr-tags-suggestions .tag-label`).filter({
|
|
7597
|
+
hasText: roleName
|
|
7598
|
+
});
|
|
7599
|
+
}
|
|
7600
|
+
async getRoleElementFromEvent(eventName, roleName) {
|
|
7601
|
+
return (await this.getEventRowElement(eventName)).locator(`.role-cell .tag.role`).filter({
|
|
7602
|
+
hasText: roleName
|
|
7603
|
+
});
|
|
7604
|
+
}
|
|
7605
|
+
async getCloseTagElements() {
|
|
7606
|
+
return this.page.locator(".tag.role a.tag-close");
|
|
7607
|
+
}
|
|
7608
|
+
async getEditMessageElements() {
|
|
7609
|
+
return this.page.locator("a.action.link").filter({
|
|
7610
|
+
hasText: "Edit Message"
|
|
7611
|
+
});
|
|
7612
|
+
}
|
|
7613
|
+
async findEditMessageLinkElementOnRow(eventRowElement) {
|
|
7614
|
+
return eventRowElement.locator("a.action.link").filter({
|
|
7615
|
+
hasText: "Edit Message"
|
|
7616
|
+
});
|
|
7617
|
+
}
|
|
7618
|
+
async typeRoleTagNameInEventInput(eventName, roleName) {
|
|
7619
|
+
const eventRowElement = await this.getEventRowElement(eventName);
|
|
7620
|
+
await (await this.findAddTagInputElementOnRow(eventRowElement)).fill(roleName);
|
|
7621
|
+
return this;
|
|
7622
|
+
}
|
|
7623
|
+
async clearRoleTagNameInEventInput(eventName) {
|
|
7624
|
+
const eventRowElement = await this.getEventRowElement(eventName);
|
|
7625
|
+
await (await this.findAddTagInputElementOnRow(eventRowElement)).clear();
|
|
7626
|
+
return this;
|
|
7627
|
+
}
|
|
7628
|
+
async filterTaskTableByEventId(filterText) {
|
|
7629
|
+
await (await this.getTasksEventIdSearchInput()).fill(filterText);
|
|
7630
|
+
return this;
|
|
7631
|
+
}
|
|
7632
|
+
async expectSuggestedRoleToBeVisible(roleName, shouldBeVisible = true) {
|
|
7633
|
+
shouldBeVisible ? (0, $hOLA6$expect)(await this.getSuggestedRoleElement(roleName)).toBeTruthy() : (0, $hOLA6$expect)(await this.getSuggestedRoleElement(roleName)).toBeFalsy();
|
|
7634
|
+
return this;
|
|
7635
|
+
}
|
|
7636
|
+
async expectRoleTagToBePresentOnEvent(eventName, roleName, shouldBePresent = true) {
|
|
7637
|
+
shouldBePresent ? await (0, $hOLA6$expect)(await this.getRoleElementFromEvent(eventName, roleName)).toBeVisible() : await (0, $hOLA6$expect)(await this.getRoleElementFromEvent(eventName, roleName)).not.toBeVisible();
|
|
7638
|
+
return this;
|
|
7639
|
+
}
|
|
7640
|
+
async expectTaskEventTableToHaveNumberOfRows(numberOfRows) {
|
|
7641
|
+
await (0, $hOLA6$expect)(await this.getTasksTableRows()).toHaveCount(numberOfRows);
|
|
7642
|
+
return this;
|
|
7643
|
+
}
|
|
7644
|
+
async expectTablesToBeInReadOnlyMode(shouldBeReadOnly = true) {
|
|
7645
|
+
if (shouldBeReadOnly) {
|
|
7646
|
+
await (0, $hOLA6$expect)(await this.getEditMessageElements()).toHaveCount(0);
|
|
7647
|
+
await (0, $hOLA6$expect)(await this.getCloseTagElements()).toHaveCount(0);
|
|
7648
|
+
} else {
|
|
7649
|
+
(0, $hOLA6$expect)(await (await this.getEditMessageElements()).count()).toBeGreaterThan(0);
|
|
7650
|
+
(0, $hOLA6$expect)(await (await this.getCloseTagElements()).count()).toBeGreaterThan(0);
|
|
7651
|
+
}
|
|
7652
|
+
return this;
|
|
7653
|
+
}
|
|
7654
|
+
async removeRoleTagFromEvent(eventName, roleName) {
|
|
7655
|
+
await this.page.locator(`[data-test="${await this.toConstantFormat(eventName)}"] div .tag.role`).filter({
|
|
7656
|
+
hasText: roleName
|
|
7657
|
+
}).locator("a.tag-close").click();
|
|
7658
|
+
return this;
|
|
7659
|
+
}
|
|
7660
|
+
async toConstantFormat(input) {
|
|
7661
|
+
return input.trim().toUpperCase().replace(/\s+/g, "_");
|
|
7662
|
+
}
|
|
7663
|
+
}
|
|
7664
|
+
class $57e4c422d5be5549$export$6c8a73a99892a2a4 extends $57e4c422d5be5549$export$399378eed9c024e7 {
|
|
7665
|
+
constructor(page){
|
|
7666
|
+
super(page);
|
|
7667
|
+
}
|
|
7668
|
+
async findBodySaveElement() {
|
|
7669
|
+
return this.page.locator(`.modal-body .actions-wrapper button[data-testid="save-button"]`);
|
|
7670
|
+
}
|
|
7671
|
+
async findBodyCloseElement() {
|
|
7672
|
+
return this.page.locator(`.modal-body .actions-wrapper button[data-testid="cancel-button"]`);
|
|
7673
|
+
}
|
|
7674
|
+
async expectBodyTextareaControlsToExist(shouldExist = true) {
|
|
7675
|
+
if (shouldExist) {
|
|
7676
|
+
(0, $hOLA6$expect)(await (await this.findBodySaveElement()).count()).toBeGreaterThan(0);
|
|
7677
|
+
(0, $hOLA6$expect)(await (await this.findBodyCloseElement()).count()).toBeGreaterThan(0);
|
|
7678
|
+
} else {
|
|
7679
|
+
await (0, $hOLA6$expect)(await this.findBodySaveElement()).toHaveCount(0);
|
|
7680
|
+
await (0, $hOLA6$expect)(await this.findBodyCloseElement()).toHaveCount(0);
|
|
7681
|
+
}
|
|
7682
|
+
return this;
|
|
7683
|
+
}
|
|
7684
|
+
async getPriorityDropdownElement() {
|
|
7685
|
+
return this.page.locator(".priority-group .xlr-react-select");
|
|
7686
|
+
}
|
|
7687
|
+
async getPriorityDropdownItemElement(priority) {
|
|
7688
|
+
return this.page.locator(`.ant-select-dropdown .ant-select-dropdown-menu-item`).filter({
|
|
7689
|
+
hasText: priority
|
|
7690
|
+
});
|
|
7691
|
+
}
|
|
7692
|
+
async getModalCancelButtonElement() {
|
|
7693
|
+
return this.page.locator(".modal-footer .button.cancel");
|
|
7694
|
+
}
|
|
7695
|
+
async getModalSaveButtonElement() {
|
|
7696
|
+
return this.page.locator(".modal-footer .button.primary");
|
|
7697
|
+
}
|
|
7698
|
+
async setPriority(priority) {
|
|
7699
|
+
await (await this.getPriorityDropdownElement()).click();
|
|
7700
|
+
await (await this.getPriorityDropdownItemElement(priority)).click();
|
|
7701
|
+
return this;
|
|
7702
|
+
}
|
|
7703
|
+
async expectModalSaveButtonToBeEnabled(shouldBeEnabled = true) {
|
|
7704
|
+
if (shouldBeEnabled) await (0, $hOLA6$expect)(await this.getModalSaveButtonElement()).toBeEnabled();
|
|
7705
|
+
else await (0, $hOLA6$expect)(await this.getModalSaveButtonElement()).toBeDisabled();
|
|
7706
|
+
return this;
|
|
7707
|
+
}
|
|
7708
|
+
async expectModalCancelButtonToBeEnabled(shouldBeEnabled = true) {
|
|
7709
|
+
if (shouldBeEnabled) await (0, $hOLA6$expect)(await this.getModalCancelButtonElement()).toBeEnabled();
|
|
7710
|
+
else await (0, $hOLA6$expect)(await this.getModalCancelButtonElement()).toBeDisabled();
|
|
7711
|
+
return this;
|
|
7712
|
+
}
|
|
7713
|
+
async hasPriority(priority) {
|
|
7714
|
+
await (0, $hOLA6$expect)(this.page.locator(".ant-select-selection-selected-value")).toHaveText(priority);
|
|
7715
|
+
return this;
|
|
7716
|
+
}
|
|
7717
|
+
async setSubject(subject) {
|
|
7718
|
+
const subjectElem = this.page.getByRole("textbox");
|
|
7719
|
+
await subjectElem.click();
|
|
7720
|
+
await subjectElem.clear();
|
|
7721
|
+
await subjectElem.fill(subject);
|
|
7722
|
+
return this;
|
|
7723
|
+
}
|
|
7724
|
+
async hasSubject(subject) {
|
|
7725
|
+
await (0, $hOLA6$expect)(this.page.locator(`input[name="subject"]`)).toHaveValue(subject);
|
|
7726
|
+
return this;
|
|
7727
|
+
}
|
|
7728
|
+
async writeIntoBodyTextarea(bodyText) {
|
|
7729
|
+
await this.page.getByLabel("Double-click to edit").waitFor({
|
|
7730
|
+
timeout: 10000
|
|
7731
|
+
});
|
|
7732
|
+
await this.page.getByLabel("Double-click to edit").hover();
|
|
7733
|
+
await this.page.locator(".markdown-viewer-actions").getByTestId("edit-button").click();
|
|
7734
|
+
const bodyTextareaElem = this.page.locator(`textarea[id="body-input"]`);
|
|
7735
|
+
await bodyTextareaElem.clear();
|
|
7736
|
+
await bodyTextareaElem.fill(bodyText);
|
|
7737
|
+
return this;
|
|
7738
|
+
}
|
|
7739
|
+
async saveTextInsideOfBodyTextarea() {
|
|
7740
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("save-button")).toBeVisible();
|
|
7741
|
+
await this.page.getByTestId("save-button").click();
|
|
7742
|
+
return this;
|
|
7743
|
+
}
|
|
7744
|
+
async setBody(body) {
|
|
7745
|
+
await this.writeIntoBodyTextarea(body);
|
|
7746
|
+
await this.expectBodyTextareaControlsToExist();
|
|
7747
|
+
await this.saveTextInsideOfBodyTextarea();
|
|
7748
|
+
return this;
|
|
7749
|
+
}
|
|
7750
|
+
async hasBody(body) {
|
|
7751
|
+
await (0, $hOLA6$expect)(this.page.locator(".markdown-wrapper")).toContainText(body);
|
|
7752
|
+
return this;
|
|
7753
|
+
}
|
|
7754
|
+
async save() {
|
|
7755
|
+
await (await this.getModalSaveButtonElement()).click();
|
|
7756
|
+
return this;
|
|
7757
|
+
}
|
|
7758
|
+
async cancel() {
|
|
7759
|
+
await (await this.getModalCancelButtonElement()).click();
|
|
7760
|
+
return this;
|
|
7761
|
+
}
|
|
7762
|
+
async confirmLeave() {
|
|
7763
|
+
await this.page.locator(".leave-confirmation-dialog").getByRole("button", {
|
|
7764
|
+
name: "Leave"
|
|
7765
|
+
}).click();
|
|
7766
|
+
return this;
|
|
7767
|
+
}
|
|
7768
|
+
async expectNotificationSettingsModalToBeVisible(shouldBeVisible = true) {
|
|
7769
|
+
const modal = this.page.locator(`[role='dialog'] .xl-react-widget-modal-dialog`);
|
|
7770
|
+
if (shouldBeVisible) await (0, $hOLA6$expect)(modal).toBeVisible();
|
|
7771
|
+
else await (0, $hOLA6$expect)(modal).toHaveCount(0);
|
|
7772
|
+
return this;
|
|
7773
|
+
}
|
|
7774
|
+
async expectModalControlButtonsToBeEnabled(shouldBeEnabled = true) {
|
|
7775
|
+
await this.expectModalSaveButtonToBeEnabled(shouldBeEnabled);
|
|
7776
|
+
await this.expectModalCancelButtonToBeEnabled(shouldBeEnabled);
|
|
7777
|
+
return this;
|
|
7778
|
+
}
|
|
7779
|
+
async changeEmailDataWithAssertion(priority, subject, body) {
|
|
7780
|
+
await this.expectBodyTextareaControlsToExist(false);
|
|
7781
|
+
await this.setPriority(priority);
|
|
7782
|
+
await this.expectModalCancelButtonToBeEnabled();
|
|
7783
|
+
await this.hasPriority(priority);
|
|
7784
|
+
await this.expectModalCancelButtonToBeEnabled();
|
|
7785
|
+
await this.setSubject(subject);
|
|
7786
|
+
await this.expectModalCancelButtonToBeEnabled();
|
|
7787
|
+
await this.hasSubject(subject);
|
|
7788
|
+
await this.setBody(body);
|
|
7789
|
+
await this.expectModalCancelButtonToBeEnabled();
|
|
7790
|
+
await this.hasBody(body);
|
|
7791
|
+
await this.expectModalControlButtonsToBeEnabled();
|
|
7792
|
+
return this;
|
|
7793
|
+
}
|
|
7794
|
+
async changeEmailDataSaveChangesAndAssert(priority, subject, body) {
|
|
7795
|
+
await this.changeEmailDataWithAssertion(priority, subject, body);
|
|
7796
|
+
await this.save();
|
|
7797
|
+
await this.expectNotificationSettingsModalToBeVisible(false);
|
|
7798
|
+
return this;
|
|
7799
|
+
}
|
|
7800
|
+
async changeEmailDataCancelChangesAndAssert(priority, subject, body) {
|
|
7801
|
+
await this.changeEmailDataWithAssertion(priority, subject, body);
|
|
7802
|
+
await this.cancel();
|
|
7803
|
+
await this.expectLeaveConfirmationModalToBeVisible();
|
|
7804
|
+
await this.confirmLeave();
|
|
7805
|
+
return this;
|
|
7806
|
+
}
|
|
7807
|
+
async expectLeaveConfirmationModalToBeVisible(shouldBeVisible = true) {
|
|
7808
|
+
shouldBeVisible ? await (0, $hOLA6$expect)(this.page.locator(".leave-confirmation-dialog")).toBeVisible() : await (0, $hOLA6$expect)(this.page.locator(".leave-confirmation-dialog")).toHaveCount(0);
|
|
7809
|
+
return this;
|
|
7810
|
+
}
|
|
7811
|
+
async openModalAndExpectData(priority, subject, body) {
|
|
7812
|
+
await this.hasPriority(priority);
|
|
7813
|
+
await this.hasSubject(subject);
|
|
7814
|
+
await this.hasBody(body);
|
|
7815
|
+
return this;
|
|
7816
|
+
}
|
|
7817
|
+
}
|
|
7818
|
+
|
|
7819
|
+
|
|
7820
|
+
class $1760f172a9c2896d$export$7a236355ab05cdda extends (0, $57e4c422d5be5549$export$399378eed9c024e7) {
|
|
7821
|
+
constructor(page){
|
|
7822
|
+
super(page);
|
|
7823
|
+
}
|
|
7824
|
+
async getResetButtonElement() {
|
|
7825
|
+
return this.page.getByTestId("reset-btn");
|
|
7826
|
+
}
|
|
7827
|
+
async getSaveButtonElement() {
|
|
7828
|
+
return this.page.getByTestId("save-btn");
|
|
7829
|
+
}
|
|
7830
|
+
async getSuggestionTag() {
|
|
7831
|
+
return this.page.locator(".xlr-tags-suggestions .tag-label");
|
|
7832
|
+
}
|
|
7833
|
+
async getSuggestedRoleElement(roleName) {
|
|
7834
|
+
return this.page.locator(`.xlr-tags-suggestions .tag-label`).filter({
|
|
7835
|
+
hasText: roleName
|
|
7836
|
+
});
|
|
7837
|
+
}
|
|
7838
|
+
async selectSuggestedRole(roleName) {
|
|
7839
|
+
await (await this.getSuggestedRoleElement(roleName)).click();
|
|
7840
|
+
return this;
|
|
7841
|
+
}
|
|
7842
|
+
async getEventElement(eventName) {
|
|
7843
|
+
return this.page.locator(`tbody > tr `).filter({
|
|
7844
|
+
hasText: eventName
|
|
7845
|
+
});
|
|
7846
|
+
}
|
|
7847
|
+
async getEventRowElement(eventName) {
|
|
7848
|
+
return (await this.getEventElement(eventName)).locator("td");
|
|
7849
|
+
}
|
|
7850
|
+
async getRoleElementFromEvent(eventName, roleName) {
|
|
7851
|
+
return (await this.getEventRowElement(eventName)).locator(`.role-cell .tag.role span`).filter({
|
|
7852
|
+
hasText: roleName
|
|
7853
|
+
});
|
|
7854
|
+
}
|
|
7855
|
+
async expectResetButtonToBeEnabled(shouldBeEnabled = true) {
|
|
7856
|
+
shouldBeEnabled ? await (0, $hOLA6$expect)(await this.getResetButtonElement()).toBeEnabled() : await (0, $hOLA6$expect)(await this.getResetButtonElement()).toBeDisabled();
|
|
7857
|
+
return this;
|
|
7858
|
+
}
|
|
7859
|
+
async expectSaveButtonToBeEnabled(shouldBeEnabled = true) {
|
|
7860
|
+
shouldBeEnabled ? await (0, $hOLA6$expect)(await this.getSaveButtonElement()).toBeEnabled() : await (0, $hOLA6$expect)(await this.getSaveButtonElement()).toBeDisabled();
|
|
7861
|
+
return this;
|
|
7862
|
+
}
|
|
7863
|
+
async expectTableWithRecipients(tableTitle, recipientEnabled) {
|
|
7864
|
+
const countElement = this.page.locator(`.collapsible-component`).filter({
|
|
7865
|
+
hasText: tableTitle
|
|
7866
|
+
}).locator(`.tags.react-tags-wrapper`);
|
|
7867
|
+
recipientEnabled ? (0, $hOLA6$expect)(await countElement.count()).toBeGreaterThan(0) : (0, $hOLA6$expect)(await countElement.count()).toBe(0);
|
|
7868
|
+
return this;
|
|
7869
|
+
}
|
|
7870
|
+
async typeRoleText(eventId, roleText) {
|
|
7871
|
+
await this.page.locator(`.events-permissions-table input#${eventId}`).fill(roleText);
|
|
7872
|
+
return this;
|
|
7873
|
+
}
|
|
7874
|
+
async addRoleToEvent(eventId, roleName) {
|
|
7875
|
+
await this.typeRoleText(eventId, roleName);
|
|
7876
|
+
await this.selectSuggestedRole(roleName);
|
|
7877
|
+
return this;
|
|
7878
|
+
}
|
|
7879
|
+
async removeRoleFromEvent(eventId, roleName) {
|
|
7880
|
+
const roleElem = await this.getRoleElementFromEvent(roleName, eventId);
|
|
7881
|
+
await roleElem.locator(".role .tag-close").click();
|
|
7882
|
+
return this;
|
|
7883
|
+
}
|
|
7884
|
+
async expectSuggestionTagToHaveText(expectedText) {
|
|
7885
|
+
await (0, $hOLA6$expect)(await this.getSuggestionTag()).toHaveText(expectedText);
|
|
7886
|
+
return this;
|
|
7887
|
+
}
|
|
7888
|
+
async expectCancelAndSaveButtonsToBeEnabled(shouldBeEnabled = true) {
|
|
7889
|
+
shouldBeEnabled ? await (0, $hOLA6$expect)(await this.getResetButtonElement()).toBeEnabled() : await (0, $hOLA6$expect)(await this.getSaveButtonElement()).toBeDisabled();
|
|
7890
|
+
return this;
|
|
7891
|
+
}
|
|
7892
|
+
async addRoleToEventWithAssertions(eventName, roleName) {
|
|
7893
|
+
await this.typeRoleTagNameInEventInput(eventName, roleName);
|
|
7894
|
+
await this.expectSuggestedRoleToBeVisible(roleName);
|
|
7895
|
+
await this.selectSuggestedRole(roleName);
|
|
7896
|
+
await this.expectRoleTagToBePresentOnEvent(eventName, roleName);
|
|
7897
|
+
await this.expectCancelAndSaveButtonsToBeEnabled();
|
|
7898
|
+
return this;
|
|
7899
|
+
}
|
|
7900
|
+
async removeRoleAndAssert(eventName, roleName) {
|
|
7901
|
+
await this.expectTablesToBeInReadOnlyMode(false);
|
|
7902
|
+
await this.removeRoleTagFromEvent(eventName, roleName);
|
|
7903
|
+
await this.expectRoleTagToBePresentOnEvent(eventName, roleName, false);
|
|
7904
|
+
await this.expectCancelAndSaveButtonsToBeEnabled();
|
|
7905
|
+
return this;
|
|
7906
|
+
}
|
|
7907
|
+
async openEditMessageFromEvent(eventName) {
|
|
7908
|
+
await this.page.locator(`[data-test="${await this.toConstantFormat(eventName)}"]`).getByText("Edit Message").click();
|
|
7909
|
+
return new (0, $57e4c422d5be5549$export$6c8a73a99892a2a4)(this.page);
|
|
7910
|
+
}
|
|
7911
|
+
}
|
|
7912
|
+
|
|
7913
|
+
|
|
7448
7914
|
class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$export$2b65d1d97338f32b) {
|
|
7449
7915
|
constructor(page){
|
|
7450
7916
|
super(page);
|
|
@@ -7454,18 +7920,22 @@ class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$ex
|
|
|
7454
7920
|
async openGeneralSettings() {
|
|
7455
7921
|
await this.util.openSideNavMenu("General");
|
|
7456
7922
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("General")).toBeVisible();
|
|
7923
|
+
return new $2cbb78eec86d0a9f$export$b8732a8d21d8bf63(this.page);
|
|
7457
7924
|
}
|
|
7458
7925
|
async openReleasesAndTriggers() {
|
|
7459
7926
|
await this.util.openSideNavMenu("Releases and Triggers");
|
|
7460
7927
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Releases and Triggers")).toBeVisible();
|
|
7928
|
+
return new (0, $4f618685ec16216c$export$3966fb3c0478db68)(this.page);
|
|
7461
7929
|
}
|
|
7462
7930
|
async openTasks() {
|
|
7463
7931
|
await this.util.openSideNavMenu("Tasks");
|
|
7464
7932
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Tasks")).toBeVisible();
|
|
7933
|
+
return new (0, $a736ba10591716ab$export$c33e44a4a9202d88)(this.page);
|
|
7465
7934
|
}
|
|
7466
7935
|
async openReports() {
|
|
7467
7936
|
await this.util.openSideNavMenu("Reports");
|
|
7468
7937
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Reports")).toBeVisible();
|
|
7938
|
+
return new (0, $ff784d6668c5e820$export$5c92082c2afdcc2c)(this.page);
|
|
7469
7939
|
}
|
|
7470
7940
|
async openAdvanced() {
|
|
7471
7941
|
await this.util.openSideNavMenu("Advanced");
|
|
@@ -7480,6 +7950,7 @@ class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$ex
|
|
|
7480
7950
|
async openNotifications() {
|
|
7481
7951
|
await this.util.openSideNavMenu("Notifications");
|
|
7482
7952
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("Notifications")).toBeVisible();
|
|
7953
|
+
return new (0, $1760f172a9c2896d$export$7a236355ab05cdda)(this.page);
|
|
7483
7954
|
}
|
|
7484
7955
|
async openRiskProfiles() {
|
|
7485
7956
|
await this.util.openSideNavMenu("Risk profiles");
|
|
@@ -7494,6 +7965,90 @@ class $2cbb78eec86d0a9f$export$2edf430132ca35d0 extends (0, $9626bc9256ce31f7$ex
|
|
|
7494
7965
|
await this.util.openSideNavMenu("SMTP server");
|
|
7495
7966
|
await (0, $hOLA6$expect)(this.page.getByLabel("breadcrumb").getByText("SMTP server")).toBeVisible();
|
|
7496
7967
|
}
|
|
7968
|
+
async _saveDoNotAssert() {
|
|
7969
|
+
// Check if the "Save" button is enabled and save if needed
|
|
7970
|
+
const saveButton = await this.page.getByTestId("save-button").isDisabled();
|
|
7971
|
+
if (!saveButton) await this.page.getByTestId("save-button").click();
|
|
7972
|
+
}
|
|
7973
|
+
async expectCards(cardTitles) {
|
|
7974
|
+
await (0, $hOLA6$expect)(this.page.locator(`.settings-card .dot-card-header-title`)).toHaveCount(cardTitles.length);
|
|
7975
|
+
for(let i = 0; i < cardTitles.length; i++){
|
|
7976
|
+
const cardTitle = cardTitles[i];
|
|
7977
|
+
await (0, $hOLA6$expect)(this.page.locator(`.settings-card .dot-card-header-title`).filter({
|
|
7978
|
+
hasText: cardTitle
|
|
7979
|
+
})).toBeVisible();
|
|
7980
|
+
}
|
|
7981
|
+
return this;
|
|
7982
|
+
}
|
|
7983
|
+
async save() {
|
|
7984
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("save-button")).toBeVisible();
|
|
7985
|
+
await this.page.getByTestId("save-button").click();
|
|
7986
|
+
await (0, $hOLA6$expect)(this.page.locator(".success").filter({
|
|
7987
|
+
hasText: "Changes saved successfully"
|
|
7988
|
+
})).toBeVisible();
|
|
7989
|
+
await this.page.locator(".success").getByRole("button").click();
|
|
7990
|
+
return this;
|
|
7991
|
+
}
|
|
7992
|
+
async reset() {
|
|
7993
|
+
await this.page.getByTestId(`reset-button`).click();
|
|
7994
|
+
await (0, $hOLA6$expect)(this.page.getByTestId("reset-button")).toBeDisabled();
|
|
7995
|
+
return this;
|
|
7996
|
+
}
|
|
7997
|
+
}
|
|
7998
|
+
class $2cbb78eec86d0a9f$export$b8732a8d21d8bf63 extends $2cbb78eec86d0a9f$export$2edf430132ca35d0 {
|
|
7999
|
+
constructor(page){
|
|
8000
|
+
super(page);
|
|
8001
|
+
}
|
|
8002
|
+
async setInstanceName(value) {
|
|
8003
|
+
await this.page.locator("input#headerName").click({
|
|
8004
|
+
force: true
|
|
8005
|
+
});
|
|
8006
|
+
await this.page.getByRole("textbox", {
|
|
8007
|
+
name: "Instance name"
|
|
8008
|
+
}).fill(value);
|
|
8009
|
+
return this;
|
|
8010
|
+
}
|
|
8011
|
+
async setHeaderColor(colorName) {
|
|
8012
|
+
await this.page.locator(".color-picker button").click({
|
|
8013
|
+
force: true
|
|
8014
|
+
});
|
|
8015
|
+
await this.page.locator(`.color-picker-list-item`).getByText(colorName).click({
|
|
8016
|
+
force: true
|
|
8017
|
+
});
|
|
8018
|
+
return this;
|
|
8019
|
+
}
|
|
8020
|
+
async clickNotificationsMenu() {
|
|
8021
|
+
await this.util.openSideNavMenu("Notifications");
|
|
8022
|
+
}
|
|
8023
|
+
async expectInstanceName(value) {
|
|
8024
|
+
await (0, $hOLA6$expect)(this.page.locator("top-toolbar .dot-pill")).toHaveText(value);
|
|
8025
|
+
return this;
|
|
8026
|
+
}
|
|
8027
|
+
async restoreDefaultThemeSettings() {
|
|
8028
|
+
await this._clearHeaderInstanceName();
|
|
8029
|
+
await this.setHeaderColor("Green");
|
|
8030
|
+
await this._saveDoNotAssert();
|
|
8031
|
+
}
|
|
8032
|
+
async _clearHeaderInstanceName() {
|
|
8033
|
+
await this.page.locator("input#headerName").click({
|
|
8034
|
+
force: true
|
|
8035
|
+
});
|
|
8036
|
+
await this.page.locator("input#headerName").clear();
|
|
8037
|
+
}
|
|
8038
|
+
async expectHeaderColor(value) {
|
|
8039
|
+
await (0, $hOLA6$expect)(this.page.locator("top-toolbar .dot-app-toolbar")).toHaveAttribute("style", `border-bottom-color: ${value};`);
|
|
8040
|
+
return this;
|
|
8041
|
+
}
|
|
8042
|
+
async expectConfirmationPopUp() {
|
|
8043
|
+
await (0, $hOLA6$expect)(this.page.getByRole("heading", {
|
|
8044
|
+
name: "Confirm leave"
|
|
8045
|
+
})).toBeVisible();
|
|
8046
|
+
await (0, $hOLA6$expect)(this.page.getByRole("paragraph")).toContainText("You have unsaved changes that will be lost.");
|
|
8047
|
+
await this.page.getByRole("button", {
|
|
8048
|
+
name: "Leave without saving"
|
|
8049
|
+
}).click();
|
|
8050
|
+
return this;
|
|
8051
|
+
}
|
|
7497
8052
|
}
|
|
7498
8053
|
|
|
7499
8054
|
|
|
@@ -7639,6 +8194,11 @@ class $6c0f5b52769b32c3$var$ConfigurationInstancePage extends (0, $9626bc9256ce3
|
|
|
7639
8194
|
await this.page.getByLabel(fieldName).click();
|
|
7640
8195
|
return this;
|
|
7641
8196
|
}
|
|
8197
|
+
async expectTextFieldNotToExist(fieldName) {
|
|
8198
|
+
const locator = this.page.locator(`.input-scalar[data-test-id="${fieldName}"]`);
|
|
8199
|
+
await (0, $hOLA6$expect)(locator).toHaveCount(0);
|
|
8200
|
+
return this;
|
|
8201
|
+
}
|
|
7642
8202
|
// To avoid flakiness and clicking around the page, we can directly click on the header
|
|
7643
8203
|
async clickHeader() {
|
|
7644
8204
|
await this.page.locator(".configuration-instance-page h2").click();
|