d5-testing-library 1.8.0-alpha.20 → 1.8.0-alpha.22
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/FormEdit-TKPY2EAW.mjs +7 -0
- package/dist/ListForm-FJXCM77F.mjs +7 -0
- package/dist/TreeView-KNNQVSJU.mjs +8 -0
- package/dist/{chunk-WDYVVF7O.mjs → chunk-55ABPMZ7.mjs} +1 -1
- package/dist/{chunk-MV63JF3H.mjs → chunk-BSYJBQIG.mjs} +6 -3
- package/dist/{chunk-LMFYREYI.mjs → chunk-Q4YMEUH5.mjs} +1 -1
- package/dist/{chunk-PMZQRKUZ.mjs → chunk-QP2EDHX5.mjs} +145 -28
- package/dist/cjs/d5-testing-library.cjs +181 -51
- package/dist/d5-testing-library.d.ts +19 -1
- package/dist/d5-testing-library.legacy-esm.js +8 -4
- package/dist/d5-testing-library.mjs +8 -4
- package/package.json +1 -1
- package/dist/FormEdit-GTZISTTI.mjs +0 -7
- package/dist/ListForm-EM7E4ZMM.mjs +0 -7
- package/dist/TreeView-F2XF44N2.mjs +0 -8
|
@@ -1042,6 +1042,9 @@ var FormButton = class extends DXButton {
|
|
|
1042
1042
|
buttonNotDisplayedError() {
|
|
1043
1043
|
return `Form Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
1044
1044
|
}
|
|
1045
|
+
async getTitle() {
|
|
1046
|
+
return await this.getText();
|
|
1047
|
+
}
|
|
1045
1048
|
};
|
|
1046
1049
|
|
|
1047
1050
|
// src/pageObjects/elements/Groups/AbstractGroup.ts
|
|
@@ -1289,15 +1292,15 @@ async function classDependencyInjector(formType) {
|
|
|
1289
1292
|
let SubFormFactoryClass;
|
|
1290
1293
|
switch (formType) {
|
|
1291
1294
|
case "1" /* LIST */:
|
|
1292
|
-
SubFormFactoryClass = (await import("./ListForm-
|
|
1295
|
+
SubFormFactoryClass = (await import("./ListForm-FJXCM77F.mjs")).default;
|
|
1293
1296
|
break;
|
|
1294
1297
|
case "3" /* TREE */:
|
|
1295
|
-
SubFormFactoryClass = (await import("./TreeView-
|
|
1298
|
+
SubFormFactoryClass = (await import("./TreeView-KNNQVSJU.mjs")).default;
|
|
1296
1299
|
break;
|
|
1297
1300
|
case "2" /* EDIT */:
|
|
1298
1301
|
case "99" /* FREE_FORM */:
|
|
1299
1302
|
case "4" /* REPORT */:
|
|
1300
|
-
SubFormFactoryClass = (await import("./FormEdit-
|
|
1303
|
+
SubFormFactoryClass = (await import("./FormEdit-TKPY2EAW.mjs")).default;
|
|
1301
1304
|
break;
|
|
1302
1305
|
default:
|
|
1303
1306
|
throw new Error(`Unsupported form type ${formType}`);
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
wait,
|
|
18
18
|
waitElementIsClickable_default,
|
|
19
19
|
waitElementIsVisible
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BSYJBQIG.mjs";
|
|
21
21
|
|
|
22
22
|
// src/pageObjects/elements/Table/Table.ts
|
|
23
23
|
import { By as By6 } from "selenium-webdriver";
|
|
@@ -307,17 +307,31 @@ var AbstractDropDownMenuList = class extends AbstractElementWithParent {
|
|
|
307
307
|
const menuItemElement = await fixElementStaleError(by, this.driver);
|
|
308
308
|
await click(menuItemElement, this.driver);
|
|
309
309
|
}
|
|
310
|
-
async
|
|
310
|
+
async getElementByPath(path, getBy, returnLastElement = false) {
|
|
311
311
|
let pathList = isString(path) ? [path] : path;
|
|
312
|
+
let result = null;
|
|
313
|
+
let index = 1;
|
|
312
314
|
for (let text of pathList) {
|
|
313
|
-
|
|
315
|
+
if (!returnLastElement || index < pathList.length) {
|
|
316
|
+
await this.clickItemBy(this.buttonNotDisplayedError(text), getBy(text));
|
|
317
|
+
} else {
|
|
318
|
+
result = await fixElementStaleError(getBy(text), this.driver);
|
|
319
|
+
}
|
|
320
|
+
index++;
|
|
314
321
|
}
|
|
322
|
+
return result;
|
|
323
|
+
}
|
|
324
|
+
async clickButton(name) {
|
|
325
|
+
await this.getElementByPath(name, this.getButtonNameBy.bind(this));
|
|
315
326
|
}
|
|
316
|
-
|
|
317
|
-
|
|
327
|
+
async clickButtonByTitle(title) {
|
|
328
|
+
await this.getElementByPath(title, this.getButtonTitleBy.bind(this));
|
|
329
|
+
}
|
|
330
|
+
getMenuItemElementByTitle(title) {
|
|
331
|
+
return this.getElementByPath(title, this.getButtonTitleBy.bind(this), true);
|
|
318
332
|
}
|
|
319
|
-
|
|
320
|
-
return this.
|
|
333
|
+
getMenuItemElementByName(name) {
|
|
334
|
+
return this.getElementByPath(name, this.getButtonNameBy.bind(this), true);
|
|
321
335
|
}
|
|
322
336
|
isVisible() {
|
|
323
337
|
return Promise.resolve(true);
|
|
@@ -550,28 +564,51 @@ var Table = class extends AbstractElementWithParent {
|
|
|
550
564
|
};
|
|
551
565
|
|
|
552
566
|
// src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
|
|
553
|
-
|
|
567
|
+
import { By as By8 } from "selenium-webdriver";
|
|
568
|
+
|
|
569
|
+
// src/pageObjects/elements/TableToolbar/ToolbarButton.ts
|
|
570
|
+
import { By as By7 } from "selenium-webdriver";
|
|
571
|
+
var TOOLBAR_BUTTON_CLASS = "toolbar-button";
|
|
572
|
+
var TOOLBAR_BUTTON_TEXT_CLASS = "dx-button-text";
|
|
573
|
+
var getToolbarButtonSelector = (name) => `#${TOOLBAR_BUTTON_CLASS}-${name}`;
|
|
574
|
+
var getToolbarButtonTextSelector = (name) => `${getToolbarButtonSelector(name)} .${TOOLBAR_BUTTON_TEXT_CLASS}`;
|
|
575
|
+
var ToolbarButton = class extends AbstractButton {
|
|
554
576
|
name;
|
|
555
577
|
constructor(parentCssSelector, name, driver) {
|
|
556
|
-
super(parentCssSelector,
|
|
578
|
+
super(parentCssSelector, getToolbarButtonSelector(name), driver);
|
|
557
579
|
this.name = name;
|
|
558
580
|
}
|
|
559
581
|
buttonNotDisplayedError() {
|
|
560
582
|
return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
561
583
|
}
|
|
584
|
+
async getTitle() {
|
|
585
|
+
try {
|
|
586
|
+
const buttonTextContainer = await this.driver.findElement(By7.css(getToolbarButtonTextSelector(this.name)));
|
|
587
|
+
return await buttonTextContainer.getText();
|
|
588
|
+
} catch (_) {
|
|
589
|
+
return null;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
562
592
|
};
|
|
563
593
|
|
|
564
|
-
// src/pageObjects/elements/TableToolbar/
|
|
565
|
-
var
|
|
566
|
-
var ToolbarButton = class extends AbstractButton {
|
|
594
|
+
// src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
|
|
595
|
+
var ToolbarGroupButton = class extends AbstractButton {
|
|
567
596
|
name;
|
|
568
597
|
constructor(parentCssSelector, name, driver) {
|
|
569
|
-
super(parentCssSelector,
|
|
598
|
+
super(parentCssSelector, ``, driver);
|
|
570
599
|
this.name = name;
|
|
571
600
|
}
|
|
572
601
|
buttonNotDisplayedError() {
|
|
573
602
|
return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
574
603
|
}
|
|
604
|
+
async getTitle() {
|
|
605
|
+
try {
|
|
606
|
+
const buttonTextContainer = await this.driver.findElement(By8.css(getToolbarButtonTextSelector(this.name)));
|
|
607
|
+
return await buttonTextContainer.getText();
|
|
608
|
+
} catch (_) {
|
|
609
|
+
return null;
|
|
610
|
+
}
|
|
611
|
+
}
|
|
575
612
|
};
|
|
576
613
|
|
|
577
614
|
// src/pageObjects/elements/AbstractDropDownMenuButton.ts
|
|
@@ -594,6 +631,48 @@ var AbstractDropDownMenuButton = class extends AbstractElementWithParent {
|
|
|
594
631
|
await this.openDropdownMenu();
|
|
595
632
|
await this._list.clickButtonByTitle(title);
|
|
596
633
|
}
|
|
634
|
+
async getMenuItemElementByTitle(title) {
|
|
635
|
+
await this.openDropdownMenu();
|
|
636
|
+
return await this._list.getMenuItemElementByTitle(title);
|
|
637
|
+
}
|
|
638
|
+
async getMenuItemElementByName(name) {
|
|
639
|
+
await this.openDropdownMenu();
|
|
640
|
+
return await this._list.getMenuItemElementByName(name);
|
|
641
|
+
}
|
|
642
|
+
};
|
|
643
|
+
|
|
644
|
+
// src/pageObjects/elements/TableToolbar/ToolbarMenuItem.ts
|
|
645
|
+
var ToolbarMenuItem = class {
|
|
646
|
+
getMenuItem;
|
|
647
|
+
name;
|
|
648
|
+
constructor(getMenuItem, name) {
|
|
649
|
+
this.getMenuItem = getMenuItem;
|
|
650
|
+
this.name = name;
|
|
651
|
+
}
|
|
652
|
+
async click() {
|
|
653
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
654
|
+
await menuItemElement.click();
|
|
655
|
+
}
|
|
656
|
+
async getTitle() {
|
|
657
|
+
try {
|
|
658
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
659
|
+
return await menuItemElement.getText();
|
|
660
|
+
} catch (_) {
|
|
661
|
+
return null;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
async isDisabled() {
|
|
665
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
666
|
+
return await menuItemElement.getCssValue("pointer-events") === "none";
|
|
667
|
+
}
|
|
668
|
+
async isDisplayed() {
|
|
669
|
+
try {
|
|
670
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
671
|
+
return await menuItemElement.isDisplayed();
|
|
672
|
+
} catch (_) {
|
|
673
|
+
return false;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
597
676
|
};
|
|
598
677
|
|
|
599
678
|
// src/pageObjects/elements/TableToolbar/ToolbarMenu.ts
|
|
@@ -616,15 +695,49 @@ var ToolbarMenu = class extends AbstractDropDownMenuButton {
|
|
|
616
695
|
const list = new ToolbarMenuList(parentCssSelector, ".toolbar-dropdown-context-menu", formName, driver);
|
|
617
696
|
super(parentCssSelector, fullSelector, list, driver);
|
|
618
697
|
}
|
|
619
|
-
|
|
698
|
+
checkNameValue(name) {
|
|
620
699
|
if (!isString(name) && !isArray(name))
|
|
621
700
|
throw new Error(`"name" must be a string or array of string`);
|
|
622
|
-
await super.clickButton(name);
|
|
623
701
|
}
|
|
624
|
-
|
|
702
|
+
checkTitleValue(title) {
|
|
625
703
|
if (!isString(title) && !isArray(title))
|
|
626
704
|
throw new Error(`"title" must be a string or array of string`);
|
|
627
|
-
|
|
705
|
+
}
|
|
706
|
+
buttonByName(name) {
|
|
707
|
+
this.checkNameValue(name);
|
|
708
|
+
return new ToolbarMenuItem(this.getMenuItemElementByName.bind(this), name);
|
|
709
|
+
}
|
|
710
|
+
buttonByTitle(title) {
|
|
711
|
+
this.checkTitleValue(title);
|
|
712
|
+
return new ToolbarMenuItem(this.getMenuItemElementByTitle.bind(this), title);
|
|
713
|
+
}
|
|
714
|
+
async buttonIsDisplayed(name) {
|
|
715
|
+
const button = this.buttonByName(name);
|
|
716
|
+
return await button.isDisplayed();
|
|
717
|
+
}
|
|
718
|
+
async buttonByTitleIsDisplayed(title) {
|
|
719
|
+
const button = this.buttonByTitle(title);
|
|
720
|
+
return await button.isDisplayed();
|
|
721
|
+
}
|
|
722
|
+
async buttonTitle(name) {
|
|
723
|
+
const button = this.buttonByName(name);
|
|
724
|
+
return await button.getTitle();
|
|
725
|
+
}
|
|
726
|
+
async buttonIsDisabled(name) {
|
|
727
|
+
const button = this.buttonByName(name);
|
|
728
|
+
return await button.isDisabled();
|
|
729
|
+
}
|
|
730
|
+
async buttonByTitleIsDisabled(title) {
|
|
731
|
+
const button = this.buttonByTitle(title);
|
|
732
|
+
return await button.isDisabled();
|
|
733
|
+
}
|
|
734
|
+
async clickButton(name) {
|
|
735
|
+
const button = this.buttonByName(name);
|
|
736
|
+
await button.click();
|
|
737
|
+
}
|
|
738
|
+
async clickButtonByTitle(title) {
|
|
739
|
+
const button = this.buttonByTitle(title);
|
|
740
|
+
await button.click();
|
|
628
741
|
}
|
|
629
742
|
};
|
|
630
743
|
|
|
@@ -666,6 +779,10 @@ var ToolbarItem = class extends AbstractElementWithParent {
|
|
|
666
779
|
return false;
|
|
667
780
|
}
|
|
668
781
|
}
|
|
782
|
+
async getTitle() {
|
|
783
|
+
await this.init();
|
|
784
|
+
return await this._button.getTitle();
|
|
785
|
+
}
|
|
669
786
|
get menu() {
|
|
670
787
|
return new ToolbarMenu(this.parentCssSelector, this._formName, this._itemName, this.driver);
|
|
671
788
|
}
|
|
@@ -685,7 +802,7 @@ var FormToolbar = class extends AbstractElementWithParent {
|
|
|
685
802
|
};
|
|
686
803
|
|
|
687
804
|
// src/pageObjects/elements/Filters/FilterOperation.ts
|
|
688
|
-
import { By as
|
|
805
|
+
import { By as By9 } from "selenium-webdriver";
|
|
689
806
|
var FILTER_OPERATIONS = [
|
|
690
807
|
"=",
|
|
691
808
|
"<>",
|
|
@@ -718,10 +835,10 @@ var FilterOperation = class extends AbstractElementWithParent {
|
|
|
718
835
|
errorMessage: "Widget operation is not clickable",
|
|
719
836
|
driver: this.driver
|
|
720
837
|
});
|
|
721
|
-
const clickableElement = await widgetButtonEl.findElement(
|
|
838
|
+
const clickableElement = await widgetButtonEl.findElement(By9.className("dx-icon"));
|
|
722
839
|
await click(clickableElement, this.driver);
|
|
723
840
|
try {
|
|
724
|
-
const widgetPopupEl = await this.driver.findElement(
|
|
841
|
+
const widgetPopupEl = await this.driver.findElement(By9.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
|
|
725
842
|
await waitElementIsVisible({
|
|
726
843
|
element: widgetPopupEl,
|
|
727
844
|
errorMessage: `Operation widget popup is not visible`,
|
|
@@ -736,7 +853,7 @@ var FilterOperation = class extends AbstractElementWithParent {
|
|
|
736
853
|
throw new Error(`Operation with name "${operationName}" is not correct.`);
|
|
737
854
|
}
|
|
738
855
|
await this.initOperationWidget();
|
|
739
|
-
const operationEl = await fixElementStaleError(
|
|
856
|
+
const operationEl = await fixElementStaleError(By9.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
|
|
740
857
|
await click(operationEl, this.driver);
|
|
741
858
|
await wait(
|
|
742
859
|
async () => {
|
|
@@ -873,7 +990,7 @@ var FormFilterField = class extends AbstractEditor {
|
|
|
873
990
|
};
|
|
874
991
|
|
|
875
992
|
// src/pageObjects/elements/Filters/FilterPanel.ts
|
|
876
|
-
import { By as
|
|
993
|
+
import { By as By10 } from "selenium-webdriver";
|
|
877
994
|
|
|
878
995
|
// src/pageObjects/elements/Filters/PanelFilterField.ts
|
|
879
996
|
var PanelFilterField = class extends AbstractEditor {
|
|
@@ -984,7 +1101,7 @@ var FilterPanel = class extends AbstractElement {
|
|
|
984
1101
|
async filterPanelButtons() {
|
|
985
1102
|
const selector = `${this.elementCssSelector} ${FILTER_PANEL_SELECTOR} .filter-panel__buttons-panel .dx-button-text`;
|
|
986
1103
|
const el = await this.getElement();
|
|
987
|
-
return el.findElements(
|
|
1104
|
+
return el.findElements(By10.css(selector));
|
|
988
1105
|
}
|
|
989
1106
|
constructor(formName, driver) {
|
|
990
1107
|
super(driver, drawerSelector(formName));
|
|
@@ -1017,13 +1134,13 @@ var FilterPanel = class extends AbstractElement {
|
|
|
1017
1134
|
await this.driver.sleep(300);
|
|
1018
1135
|
}
|
|
1019
1136
|
async close() {
|
|
1020
|
-
const btn = await this.driver.findElement(
|
|
1137
|
+
const btn = await this.driver.findElement(By10.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
|
|
1021
1138
|
await click(btn, this.driver);
|
|
1022
1139
|
}
|
|
1023
1140
|
};
|
|
1024
1141
|
|
|
1025
1142
|
// src/pageObjects/elements/Filters/ColumnFilter.ts
|
|
1026
|
-
import { By as
|
|
1143
|
+
import { By as By11 } from "selenium-webdriver";
|
|
1027
1144
|
|
|
1028
1145
|
// src/pageObjects/elements/Filters/HeaderFilterField.ts
|
|
1029
1146
|
var HeaderFilterField = class extends AbstractEditor {
|
|
@@ -1063,11 +1180,11 @@ var ColumnFilter = class extends AbstractElement {
|
|
|
1063
1180
|
}
|
|
1064
1181
|
async getApplyButton() {
|
|
1065
1182
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${APPLY_SELECTOR}`;
|
|
1066
|
-
return this.driver.findElement(
|
|
1183
|
+
return this.driver.findElement(By11.css(selector));
|
|
1067
1184
|
}
|
|
1068
1185
|
async getCancelButton() {
|
|
1069
1186
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${CANCEL_SELECTOR}`;
|
|
1070
|
-
return this.driver.findElement(
|
|
1187
|
+
return this.driver.findElement(By11.css(selector));
|
|
1071
1188
|
}
|
|
1072
1189
|
async apply() {
|
|
1073
1190
|
const btn = await this.getApplyButton();
|
|
@@ -1081,7 +1198,7 @@ var ColumnFilter = class extends AbstractElement {
|
|
|
1081
1198
|
const columnEl = await this._column.getElement();
|
|
1082
1199
|
const actions = this.driver.actions({ async: true });
|
|
1083
1200
|
await actions.move({ origin: columnEl }).perform();
|
|
1084
|
-
const elements = await columnEl.findElements(
|
|
1201
|
+
const elements = await columnEl.findElements(By11.css(HEADER_FILTER_ICON));
|
|
1085
1202
|
let headerFilterIcon = null;
|
|
1086
1203
|
await wait(
|
|
1087
1204
|
async () => {
|
|
@@ -1228,6 +1228,9 @@ var init_FormButton = __esm({
|
|
|
1228
1228
|
buttonNotDisplayedError() {
|
|
1229
1229
|
return `Form Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
1230
1230
|
}
|
|
1231
|
+
async getTitle() {
|
|
1232
|
+
return await this.getText();
|
|
1233
|
+
}
|
|
1231
1234
|
};
|
|
1232
1235
|
}
|
|
1233
1236
|
});
|
|
@@ -2036,17 +2039,31 @@ var init_AbstractDropDownMenuList = __esm({
|
|
|
2036
2039
|
const menuItemElement = await fixElementStaleError(by, this.driver);
|
|
2037
2040
|
await click(menuItemElement, this.driver);
|
|
2038
2041
|
}
|
|
2039
|
-
async
|
|
2042
|
+
async getElementByPath(path, getBy, returnLastElement = false) {
|
|
2040
2043
|
let pathList = isString(path) ? [path] : path;
|
|
2044
|
+
let result = null;
|
|
2045
|
+
let index = 1;
|
|
2041
2046
|
for (let text of pathList) {
|
|
2042
|
-
|
|
2047
|
+
if (!returnLastElement || index < pathList.length) {
|
|
2048
|
+
await this.clickItemBy(this.buttonNotDisplayedError(text), getBy(text));
|
|
2049
|
+
} else {
|
|
2050
|
+
result = await fixElementStaleError(getBy(text), this.driver);
|
|
2051
|
+
}
|
|
2052
|
+
index++;
|
|
2043
2053
|
}
|
|
2054
|
+
return result;
|
|
2044
2055
|
}
|
|
2045
|
-
clickButton(name) {
|
|
2046
|
-
|
|
2056
|
+
async clickButton(name) {
|
|
2057
|
+
await this.getElementByPath(name, this.getButtonNameBy.bind(this));
|
|
2047
2058
|
}
|
|
2048
|
-
clickButtonByTitle(title) {
|
|
2049
|
-
|
|
2059
|
+
async clickButtonByTitle(title) {
|
|
2060
|
+
await this.getElementByPath(title, this.getButtonTitleBy.bind(this));
|
|
2061
|
+
}
|
|
2062
|
+
getMenuItemElementByTitle(title) {
|
|
2063
|
+
return this.getElementByPath(title, this.getButtonTitleBy.bind(this), true);
|
|
2064
|
+
}
|
|
2065
|
+
getMenuItemElementByName(name) {
|
|
2066
|
+
return this.getElementByPath(name, this.getButtonNameBy.bind(this), true);
|
|
2050
2067
|
}
|
|
2051
2068
|
isVisible() {
|
|
2052
2069
|
return Promise.resolve(true);
|
|
@@ -2314,41 +2331,63 @@ var init_Table = __esm({
|
|
|
2314
2331
|
}
|
|
2315
2332
|
});
|
|
2316
2333
|
|
|
2317
|
-
// src/pageObjects/elements/TableToolbar/
|
|
2318
|
-
var
|
|
2319
|
-
var
|
|
2320
|
-
"src/pageObjects/elements/TableToolbar/
|
|
2334
|
+
// src/pageObjects/elements/TableToolbar/ToolbarButton.ts
|
|
2335
|
+
var import_selenium_webdriver26, TOOLBAR_BUTTON_CLASS, TOOLBAR_BUTTON_TEXT_CLASS, getToolbarButtonSelector, getToolbarButtonTextSelector, ToolbarButton;
|
|
2336
|
+
var init_ToolbarButton = __esm({
|
|
2337
|
+
"src/pageObjects/elements/TableToolbar/ToolbarButton.ts"() {
|
|
2321
2338
|
"use strict";
|
|
2339
|
+
import_selenium_webdriver26 = require("selenium-webdriver");
|
|
2322
2340
|
init_AbstractButton();
|
|
2323
|
-
|
|
2341
|
+
TOOLBAR_BUTTON_CLASS = "toolbar-button";
|
|
2342
|
+
TOOLBAR_BUTTON_TEXT_CLASS = "dx-button-text";
|
|
2343
|
+
getToolbarButtonSelector = (name) => `#${TOOLBAR_BUTTON_CLASS}-${name}`;
|
|
2344
|
+
getToolbarButtonTextSelector = (name) => `${getToolbarButtonSelector(name)} .${TOOLBAR_BUTTON_TEXT_CLASS}`;
|
|
2345
|
+
ToolbarButton = class extends AbstractButton {
|
|
2324
2346
|
name;
|
|
2325
2347
|
constructor(parentCssSelector, name, driver) {
|
|
2326
|
-
super(parentCssSelector,
|
|
2348
|
+
super(parentCssSelector, getToolbarButtonSelector(name), driver);
|
|
2327
2349
|
this.name = name;
|
|
2328
2350
|
}
|
|
2329
2351
|
buttonNotDisplayedError() {
|
|
2330
2352
|
return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
2331
2353
|
}
|
|
2354
|
+
async getTitle() {
|
|
2355
|
+
try {
|
|
2356
|
+
const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver26.By.css(getToolbarButtonTextSelector(this.name)));
|
|
2357
|
+
return await buttonTextContainer.getText();
|
|
2358
|
+
} catch (_) {
|
|
2359
|
+
return null;
|
|
2360
|
+
}
|
|
2361
|
+
}
|
|
2332
2362
|
};
|
|
2333
2363
|
}
|
|
2334
2364
|
});
|
|
2335
2365
|
|
|
2336
|
-
// src/pageObjects/elements/TableToolbar/
|
|
2337
|
-
var
|
|
2338
|
-
var
|
|
2339
|
-
"src/pageObjects/elements/TableToolbar/
|
|
2366
|
+
// src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts
|
|
2367
|
+
var import_selenium_webdriver27, ToolbarGroupButton;
|
|
2368
|
+
var init_ToolbarGroupButton = __esm({
|
|
2369
|
+
"src/pageObjects/elements/TableToolbar/ToolbarGroupButton.ts"() {
|
|
2340
2370
|
"use strict";
|
|
2341
2371
|
init_AbstractButton();
|
|
2342
|
-
|
|
2343
|
-
|
|
2372
|
+
import_selenium_webdriver27 = require("selenium-webdriver");
|
|
2373
|
+
init_ToolbarButton();
|
|
2374
|
+
ToolbarGroupButton = class extends AbstractButton {
|
|
2344
2375
|
name;
|
|
2345
2376
|
constructor(parentCssSelector, name, driver) {
|
|
2346
|
-
super(parentCssSelector,
|
|
2377
|
+
super(parentCssSelector, ``, driver);
|
|
2347
2378
|
this.name = name;
|
|
2348
2379
|
}
|
|
2349
2380
|
buttonNotDisplayedError() {
|
|
2350
2381
|
return `Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
2351
2382
|
}
|
|
2383
|
+
async getTitle() {
|
|
2384
|
+
try {
|
|
2385
|
+
const buttonTextContainer = await this.driver.findElement(import_selenium_webdriver27.By.css(getToolbarButtonTextSelector(this.name)));
|
|
2386
|
+
return await buttonTextContainer.getText();
|
|
2387
|
+
} catch (_) {
|
|
2388
|
+
return null;
|
|
2389
|
+
}
|
|
2390
|
+
}
|
|
2352
2391
|
};
|
|
2353
2392
|
}
|
|
2354
2393
|
});
|
|
@@ -2379,6 +2418,54 @@ var init_AbstractDropDownMenuButton = __esm({
|
|
|
2379
2418
|
await this.openDropdownMenu();
|
|
2380
2419
|
await this._list.clickButtonByTitle(title);
|
|
2381
2420
|
}
|
|
2421
|
+
async getMenuItemElementByTitle(title) {
|
|
2422
|
+
await this.openDropdownMenu();
|
|
2423
|
+
return await this._list.getMenuItemElementByTitle(title);
|
|
2424
|
+
}
|
|
2425
|
+
async getMenuItemElementByName(name) {
|
|
2426
|
+
await this.openDropdownMenu();
|
|
2427
|
+
return await this._list.getMenuItemElementByName(name);
|
|
2428
|
+
}
|
|
2429
|
+
};
|
|
2430
|
+
}
|
|
2431
|
+
});
|
|
2432
|
+
|
|
2433
|
+
// src/pageObjects/elements/TableToolbar/ToolbarMenuItem.ts
|
|
2434
|
+
var ToolbarMenuItem;
|
|
2435
|
+
var init_ToolbarMenuItem = __esm({
|
|
2436
|
+
"src/pageObjects/elements/TableToolbar/ToolbarMenuItem.ts"() {
|
|
2437
|
+
"use strict";
|
|
2438
|
+
ToolbarMenuItem = class {
|
|
2439
|
+
getMenuItem;
|
|
2440
|
+
name;
|
|
2441
|
+
constructor(getMenuItem, name) {
|
|
2442
|
+
this.getMenuItem = getMenuItem;
|
|
2443
|
+
this.name = name;
|
|
2444
|
+
}
|
|
2445
|
+
async click() {
|
|
2446
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
2447
|
+
await menuItemElement.click();
|
|
2448
|
+
}
|
|
2449
|
+
async getTitle() {
|
|
2450
|
+
try {
|
|
2451
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
2452
|
+
return await menuItemElement.getText();
|
|
2453
|
+
} catch (_) {
|
|
2454
|
+
return null;
|
|
2455
|
+
}
|
|
2456
|
+
}
|
|
2457
|
+
async isDisabled() {
|
|
2458
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
2459
|
+
return await menuItemElement.getCssValue("pointer-events") === "none";
|
|
2460
|
+
}
|
|
2461
|
+
async isDisplayed() {
|
|
2462
|
+
try {
|
|
2463
|
+
const menuItemElement = await this.getMenuItem(this.name);
|
|
2464
|
+
return await menuItemElement.isDisplayed();
|
|
2465
|
+
} catch (_) {
|
|
2466
|
+
return false;
|
|
2467
|
+
}
|
|
2468
|
+
}
|
|
2382
2469
|
};
|
|
2383
2470
|
}
|
|
2384
2471
|
});
|
|
@@ -2392,6 +2479,7 @@ var init_ToolbarMenu = __esm({
|
|
|
2392
2479
|
init_locators();
|
|
2393
2480
|
init_AbstractDropDownMenuButton();
|
|
2394
2481
|
init_DXContextMenuList();
|
|
2482
|
+
init_ToolbarMenuItem();
|
|
2395
2483
|
SPINDOWN_CLASS = ".dx-icon-spindown";
|
|
2396
2484
|
buttonGroupItemSelector = (formName, name) => byTestIdCssSelector(`ftb-${formName}-${name}`);
|
|
2397
2485
|
getFullCssSelector = (formName, name) => `${buttonGroupItemSelector(formName, name)} ${SPINDOWN_CLASS}`;
|
|
@@ -2411,15 +2499,49 @@ var init_ToolbarMenu = __esm({
|
|
|
2411
2499
|
const list = new ToolbarMenuList(parentCssSelector, ".toolbar-dropdown-context-menu", formName, driver);
|
|
2412
2500
|
super(parentCssSelector, fullSelector, list, driver);
|
|
2413
2501
|
}
|
|
2414
|
-
|
|
2502
|
+
checkNameValue(name) {
|
|
2415
2503
|
if (!isString(name) && !isArray(name))
|
|
2416
2504
|
throw new Error(`"name" must be a string or array of string`);
|
|
2417
|
-
await super.clickButton(name);
|
|
2418
2505
|
}
|
|
2419
|
-
|
|
2506
|
+
checkTitleValue(title) {
|
|
2420
2507
|
if (!isString(title) && !isArray(title))
|
|
2421
2508
|
throw new Error(`"title" must be a string or array of string`);
|
|
2422
|
-
|
|
2509
|
+
}
|
|
2510
|
+
buttonByName(name) {
|
|
2511
|
+
this.checkNameValue(name);
|
|
2512
|
+
return new ToolbarMenuItem(this.getMenuItemElementByName.bind(this), name);
|
|
2513
|
+
}
|
|
2514
|
+
buttonByTitle(title) {
|
|
2515
|
+
this.checkTitleValue(title);
|
|
2516
|
+
return new ToolbarMenuItem(this.getMenuItemElementByTitle.bind(this), title);
|
|
2517
|
+
}
|
|
2518
|
+
async buttonIsDisplayed(name) {
|
|
2519
|
+
const button = this.buttonByName(name);
|
|
2520
|
+
return await button.isDisplayed();
|
|
2521
|
+
}
|
|
2522
|
+
async buttonByTitleIsDisplayed(title) {
|
|
2523
|
+
const button = this.buttonByTitle(title);
|
|
2524
|
+
return await button.isDisplayed();
|
|
2525
|
+
}
|
|
2526
|
+
async buttonTitle(name) {
|
|
2527
|
+
const button = this.buttonByName(name);
|
|
2528
|
+
return await button.getTitle();
|
|
2529
|
+
}
|
|
2530
|
+
async buttonIsDisabled(name) {
|
|
2531
|
+
const button = this.buttonByName(name);
|
|
2532
|
+
return await button.isDisabled();
|
|
2533
|
+
}
|
|
2534
|
+
async buttonByTitleIsDisabled(title) {
|
|
2535
|
+
const button = this.buttonByTitle(title);
|
|
2536
|
+
return await button.isDisabled();
|
|
2537
|
+
}
|
|
2538
|
+
async clickButton(name) {
|
|
2539
|
+
const button = this.buttonByName(name);
|
|
2540
|
+
await button.click();
|
|
2541
|
+
}
|
|
2542
|
+
async clickButtonByTitle(title) {
|
|
2543
|
+
const button = this.buttonByTitle(title);
|
|
2544
|
+
await button.click();
|
|
2423
2545
|
}
|
|
2424
2546
|
};
|
|
2425
2547
|
}
|
|
@@ -2472,6 +2594,10 @@ var init_ToolbarItem = __esm({
|
|
|
2472
2594
|
return false;
|
|
2473
2595
|
}
|
|
2474
2596
|
}
|
|
2597
|
+
async getTitle() {
|
|
2598
|
+
await this.init();
|
|
2599
|
+
return await this._button.getTitle();
|
|
2600
|
+
}
|
|
2475
2601
|
get menu() {
|
|
2476
2602
|
return new ToolbarMenu(this.parentCssSelector, this._formName, this._itemName, this.driver);
|
|
2477
2603
|
}
|
|
@@ -2501,11 +2627,11 @@ var init_FormToolbar = __esm({
|
|
|
2501
2627
|
});
|
|
2502
2628
|
|
|
2503
2629
|
// src/pageObjects/elements/Filters/FilterOperation.ts
|
|
2504
|
-
var
|
|
2630
|
+
var import_selenium_webdriver28, FILTER_OPERATIONS, BUTTON_OPERATION_WIDGET, OPERATIONS_WIDGET_POPUP, getWidgetInPopupSelector, FilterOperation;
|
|
2505
2631
|
var init_FilterOperation = __esm({
|
|
2506
2632
|
"src/pageObjects/elements/Filters/FilterOperation.ts"() {
|
|
2507
2633
|
"use strict";
|
|
2508
|
-
|
|
2634
|
+
import_selenium_webdriver28 = require("selenium-webdriver");
|
|
2509
2635
|
init_fixElementStaleError();
|
|
2510
2636
|
init_AbstractElementWithParent();
|
|
2511
2637
|
init_locators();
|
|
@@ -2545,10 +2671,10 @@ var init_FilterOperation = __esm({
|
|
|
2545
2671
|
errorMessage: "Widget operation is not clickable",
|
|
2546
2672
|
driver: this.driver
|
|
2547
2673
|
});
|
|
2548
|
-
const clickableElement = await widgetButtonEl.findElement(
|
|
2674
|
+
const clickableElement = await widgetButtonEl.findElement(import_selenium_webdriver28.By.className("dx-icon"));
|
|
2549
2675
|
await click(clickableElement, this.driver);
|
|
2550
2676
|
try {
|
|
2551
|
-
const widgetPopupEl = await this.driver.findElement(
|
|
2677
|
+
const widgetPopupEl = await this.driver.findElement(import_selenium_webdriver28.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)}`));
|
|
2552
2678
|
await waitElementIsVisible({
|
|
2553
2679
|
element: widgetPopupEl,
|
|
2554
2680
|
errorMessage: `Operation widget popup is not visible`,
|
|
@@ -2563,7 +2689,7 @@ var init_FilterOperation = __esm({
|
|
|
2563
2689
|
throw new Error(`Operation with name "${operationName}" is not correct.`);
|
|
2564
2690
|
}
|
|
2565
2691
|
await this.initOperationWidget();
|
|
2566
|
-
const operationEl = await fixElementStaleError(
|
|
2692
|
+
const operationEl = await fixElementStaleError(import_selenium_webdriver28.By.css(`${byTestIdCssSelector(`${OPERATIONS_WIDGET_POPUP}-${this._testId}`)} ${getWidgetInPopupSelector(operationName)}`), this.driver);
|
|
2567
2693
|
await click(operationEl, this.driver);
|
|
2568
2694
|
await wait(
|
|
2569
2695
|
async () => {
|
|
@@ -2819,11 +2945,11 @@ var init_PanelFilterField = __esm({
|
|
|
2819
2945
|
});
|
|
2820
2946
|
|
|
2821
2947
|
// src/pageObjects/elements/Filters/FilterPanel.ts
|
|
2822
|
-
var
|
|
2948
|
+
var import_selenium_webdriver29, drawerSelector, FILTER_PANEL_SELECTOR, CLOSE_SELECTOR, FilterPanel;
|
|
2823
2949
|
var init_FilterPanel = __esm({
|
|
2824
2950
|
"src/pageObjects/elements/Filters/FilterPanel.ts"() {
|
|
2825
2951
|
"use strict";
|
|
2826
|
-
|
|
2952
|
+
import_selenium_webdriver29 = require("selenium-webdriver");
|
|
2827
2953
|
init_AbstractElement();
|
|
2828
2954
|
init_PanelFilterField();
|
|
2829
2955
|
init_actions();
|
|
@@ -2838,7 +2964,7 @@ var init_FilterPanel = __esm({
|
|
|
2838
2964
|
async filterPanelButtons() {
|
|
2839
2965
|
const selector = `${this.elementCssSelector} ${FILTER_PANEL_SELECTOR} .filter-panel__buttons-panel .dx-button-text`;
|
|
2840
2966
|
const el = await this.getElement();
|
|
2841
|
-
return el.findElements(
|
|
2967
|
+
return el.findElements(import_selenium_webdriver29.By.css(selector));
|
|
2842
2968
|
}
|
|
2843
2969
|
constructor(formName, driver) {
|
|
2844
2970
|
super(driver, drawerSelector(formName));
|
|
@@ -2871,7 +2997,7 @@ var init_FilterPanel = __esm({
|
|
|
2871
2997
|
await this.driver.sleep(300);
|
|
2872
2998
|
}
|
|
2873
2999
|
async close() {
|
|
2874
|
-
const btn = await this.driver.findElement(
|
|
3000
|
+
const btn = await this.driver.findElement(import_selenium_webdriver29.By.css(`${this.elementCssSelector} ${CLOSE_SELECTOR}`));
|
|
2875
3001
|
await click(btn, this.driver);
|
|
2876
3002
|
}
|
|
2877
3003
|
};
|
|
@@ -2907,12 +3033,12 @@ var init_HeaderFilterField = __esm({
|
|
|
2907
3033
|
});
|
|
2908
3034
|
|
|
2909
3035
|
// src/pageObjects/elements/Filters/ColumnFilter.ts
|
|
2910
|
-
var
|
|
3036
|
+
var import_selenium_webdriver30, APPLY_SELECTOR, CANCEL_SELECTOR, HEADER_FILTER_ICON, HEADER_FILTER_CONTAINER, HEADER_FILTER_BUTTONS, ColumnFilter;
|
|
2911
3037
|
var init_ColumnFilter = __esm({
|
|
2912
3038
|
"src/pageObjects/elements/Filters/ColumnFilter.ts"() {
|
|
2913
3039
|
"use strict";
|
|
2914
3040
|
init_actions();
|
|
2915
|
-
|
|
3041
|
+
import_selenium_webdriver30 = require("selenium-webdriver");
|
|
2916
3042
|
init_HeaderFilterField();
|
|
2917
3043
|
init_waitElementIsVisible();
|
|
2918
3044
|
init_AbstractElement();
|
|
@@ -2937,11 +3063,11 @@ var init_ColumnFilter = __esm({
|
|
|
2937
3063
|
}
|
|
2938
3064
|
async getApplyButton() {
|
|
2939
3065
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${APPLY_SELECTOR}`;
|
|
2940
|
-
return this.driver.findElement(
|
|
3066
|
+
return this.driver.findElement(import_selenium_webdriver30.By.css(selector));
|
|
2941
3067
|
}
|
|
2942
3068
|
async getCancelButton() {
|
|
2943
3069
|
const selector = `${HEADER_FILTER_CONTAINER} ${HEADER_FILTER_BUTTONS} ${CANCEL_SELECTOR}`;
|
|
2944
|
-
return this.driver.findElement(
|
|
3070
|
+
return this.driver.findElement(import_selenium_webdriver30.By.css(selector));
|
|
2945
3071
|
}
|
|
2946
3072
|
async apply() {
|
|
2947
3073
|
const btn = await this.getApplyButton();
|
|
@@ -2955,7 +3081,7 @@ var init_ColumnFilter = __esm({
|
|
|
2955
3081
|
const columnEl = await this._column.getElement();
|
|
2956
3082
|
const actions = this.driver.actions({ async: true });
|
|
2957
3083
|
await actions.move({ origin: columnEl }).perform();
|
|
2958
|
-
const elements = await columnEl.findElements(
|
|
3084
|
+
const elements = await columnEl.findElements(import_selenium_webdriver30.By.css(HEADER_FILTER_ICON));
|
|
2959
3085
|
let headerFilterIcon = null;
|
|
2960
3086
|
await wait(
|
|
2961
3087
|
async () => {
|
|
@@ -3252,12 +3378,12 @@ var init_createSubFormInstance = __esm({
|
|
|
3252
3378
|
});
|
|
3253
3379
|
|
|
3254
3380
|
// src/pageObjects/elements/Forms/Form.ts
|
|
3255
|
-
var
|
|
3381
|
+
var import_selenium_webdriver31, formTestId, Form;
|
|
3256
3382
|
var init_Form = __esm({
|
|
3257
3383
|
"src/pageObjects/elements/Forms/Form.ts"() {
|
|
3258
3384
|
"use strict";
|
|
3259
3385
|
init_locators();
|
|
3260
|
-
|
|
3386
|
+
import_selenium_webdriver31 = require("selenium-webdriver");
|
|
3261
3387
|
init_AbstractForm();
|
|
3262
3388
|
init_waitElementIsVisible();
|
|
3263
3389
|
init_createSubFormInstance();
|
|
@@ -3282,7 +3408,7 @@ var init_Form = __esm({
|
|
|
3282
3408
|
*/
|
|
3283
3409
|
async getTitleText() {
|
|
3284
3410
|
if (await this.isModal()) {
|
|
3285
|
-
const titleEl2 = await this.driver.findElement(
|
|
3411
|
+
const titleEl2 = await this.driver.findElement(import_selenium_webdriver31.By.css(`${this.popupContainerCssSelector} .popup-title`));
|
|
3286
3412
|
await waitElementIsVisible({
|
|
3287
3413
|
element: titleEl2,
|
|
3288
3414
|
driver: this.driver,
|
|
@@ -3290,7 +3416,7 @@ var init_Form = __esm({
|
|
|
3290
3416
|
});
|
|
3291
3417
|
return titleEl2.getText();
|
|
3292
3418
|
}
|
|
3293
|
-
let titleEl = await this.driver.findElement(
|
|
3419
|
+
let titleEl = await this.driver.findElement(import_selenium_webdriver31.By.className("main-toolbar-form-title"));
|
|
3294
3420
|
return titleEl.getText();
|
|
3295
3421
|
}
|
|
3296
3422
|
setSubFormMode() {
|
|
@@ -3309,7 +3435,7 @@ var init_Form = __esm({
|
|
|
3309
3435
|
async subForm(name, options = {}) {
|
|
3310
3436
|
const { isDockPanel = false } = options;
|
|
3311
3437
|
const cssSelector = subformCssSelector(this.containerCssSelector, subFormTestId(name), isDockPanel);
|
|
3312
|
-
const byCssSelector =
|
|
3438
|
+
const byCssSelector = import_selenium_webdriver31.By.css(cssSelector);
|
|
3313
3439
|
const subFormEl = await this.driver.findElement(byCssSelector);
|
|
3314
3440
|
await waitElementIsVisible({
|
|
3315
3441
|
element: subFormEl,
|
|
@@ -3339,12 +3465,12 @@ var FormEdit_exports = {};
|
|
|
3339
3465
|
__export(FormEdit_exports, {
|
|
3340
3466
|
default: () => FormEdit
|
|
3341
3467
|
});
|
|
3342
|
-
var
|
|
3468
|
+
var import_selenium_webdriver32, FormEdit;
|
|
3343
3469
|
var init_FormEdit = __esm({
|
|
3344
3470
|
"src/pageObjects/elements/Forms/FormEdit.ts"() {
|
|
3345
3471
|
"use strict";
|
|
3346
3472
|
init_Form();
|
|
3347
|
-
|
|
3473
|
+
import_selenium_webdriver32 = require("selenium-webdriver");
|
|
3348
3474
|
init_FormField();
|
|
3349
3475
|
init_actions();
|
|
3350
3476
|
init_wait();
|
|
@@ -3380,7 +3506,7 @@ var init_FormEdit = __esm({
|
|
|
3380
3506
|
*/
|
|
3381
3507
|
async isSaveButtonDisabled() {
|
|
3382
3508
|
const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
|
|
3383
|
-
const saveButton = await this.driver.findElement(
|
|
3509
|
+
const saveButton = await this.driver.findElement(import_selenium_webdriver32.By.css(saveButtonCssSelector));
|
|
3384
3510
|
const result = await saveButton.getAttribute("aria-disabled");
|
|
3385
3511
|
return result === "true";
|
|
3386
3512
|
}
|
|
@@ -3393,7 +3519,7 @@ var init_FormEdit = __esm({
|
|
|
3393
3519
|
*/
|
|
3394
3520
|
async saveButtonClick() {
|
|
3395
3521
|
const saveButtonCssSelector = await this.getButtonCssSelector(this.saveButtonId);
|
|
3396
|
-
const saveButton = await this.driver.findElement(
|
|
3522
|
+
const saveButton = await this.driver.findElement(import_selenium_webdriver32.By.css(saveButtonCssSelector));
|
|
3397
3523
|
await wait(async () => !await this.isSaveButtonDisabled(), this.driver, "Button is disabled");
|
|
3398
3524
|
await click(saveButton, this.driver);
|
|
3399
3525
|
}
|
|
@@ -3406,7 +3532,7 @@ var init_FormEdit = __esm({
|
|
|
3406
3532
|
*/
|
|
3407
3533
|
async closeButtonClick() {
|
|
3408
3534
|
const closeButtonCssSelector = await this.getButtonCssSelector(this.closeButtonId);
|
|
3409
|
-
const closeButton = await this.driver.findElement(
|
|
3535
|
+
const closeButton = await this.driver.findElement(import_selenium_webdriver32.By.css(closeButtonCssSelector));
|
|
3410
3536
|
await click(closeButton, this.driver);
|
|
3411
3537
|
}
|
|
3412
3538
|
};
|
|
@@ -3622,6 +3748,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
3622
3748
|
*/
|
|
3623
3749
|
async search(title) {
|
|
3624
3750
|
const searchComponent = this.getSearchComponent();
|
|
3751
|
+
await this.searchClear();
|
|
3625
3752
|
await searchComponent.setValue(title);
|
|
3626
3753
|
await wait(
|
|
3627
3754
|
async () => {
|
|
@@ -3721,7 +3848,7 @@ init_FilterPanel();
|
|
|
3721
3848
|
|
|
3722
3849
|
// src/pageObjects/elements/Dialog.ts
|
|
3723
3850
|
init_AbstractElement();
|
|
3724
|
-
var
|
|
3851
|
+
var import_selenium_webdriver33 = require("selenium-webdriver");
|
|
3725
3852
|
init_AbstractButton();
|
|
3726
3853
|
var DIALOG_CLASS = ".d5-dialog";
|
|
3727
3854
|
var DIALOG_TITLE_CLASS = ".dialog__title";
|
|
@@ -3736,11 +3863,14 @@ var DialogButton = class extends AbstractButton {
|
|
|
3736
3863
|
}
|
|
3737
3864
|
async getElement() {
|
|
3738
3865
|
const panel = await super.getElement();
|
|
3739
|
-
return panel.findElement(
|
|
3866
|
+
return panel.findElement(import_selenium_webdriver33.By.xpath(buttonByTextXpath(this.text)));
|
|
3740
3867
|
}
|
|
3741
3868
|
buttonNotDisplayedError() {
|
|
3742
3869
|
return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
|
|
3743
3870
|
}
|
|
3871
|
+
getTitle() {
|
|
3872
|
+
throw new Error(`Method "getTitle()" is not working.`);
|
|
3873
|
+
}
|
|
3744
3874
|
};
|
|
3745
3875
|
var Dialog = class extends AbstractElement {
|
|
3746
3876
|
constructor(driver) {
|
|
@@ -3756,11 +3886,11 @@ var Dialog = class extends AbstractElement {
|
|
|
3756
3886
|
return this.joinRelativeCssSelectors([DIALOG_CLASS, DIALOG_BUTTONS_PANEL_CLASS]);
|
|
3757
3887
|
}
|
|
3758
3888
|
async title() {
|
|
3759
|
-
const el = await this.driver.findElement(
|
|
3889
|
+
const el = await this.driver.findElement(import_selenium_webdriver33.By.css(this.titleSelector));
|
|
3760
3890
|
return await el.getText();
|
|
3761
3891
|
}
|
|
3762
3892
|
async text() {
|
|
3763
|
-
const el = await this.driver.findElement(
|
|
3893
|
+
const el = await this.driver.findElement(import_selenium_webdriver33.By.css(this.textSelector));
|
|
3764
3894
|
return await el.getText();
|
|
3765
3895
|
}
|
|
3766
3896
|
button(text) {
|
|
@@ -260,6 +260,7 @@ interface Button {
|
|
|
260
260
|
click(): Promise<void>;
|
|
261
261
|
isDisabled(): Promise<boolean>;
|
|
262
262
|
isDisplayed(): Promise<boolean>;
|
|
263
|
+
getTitle(): Promise<string>;
|
|
263
264
|
}
|
|
264
265
|
declare abstract class AbstractButton extends AbstractElementWithParent implements Button {
|
|
265
266
|
protected constructor(parentCssSelector: string, elementCssSelector: string, driver?: WebDriver);
|
|
@@ -267,6 +268,7 @@ declare abstract class AbstractButton extends AbstractElementWithParent implemen
|
|
|
267
268
|
click(): Promise<void>;
|
|
268
269
|
isDisabled(): Promise<boolean>;
|
|
269
270
|
isDisplayed(): Promise<boolean>;
|
|
271
|
+
abstract getTitle(): Promise<string>;
|
|
270
272
|
}
|
|
271
273
|
|
|
272
274
|
declare abstract class DXButton extends AbstractButton {
|
|
@@ -277,6 +279,7 @@ declare class FormButton extends DXButton {
|
|
|
277
279
|
private readonly name;
|
|
278
280
|
constructor(parentCssSelector: string, formName: string, name: string, driver?: WebDriver);
|
|
279
281
|
protected buttonNotDisplayedError(): string;
|
|
282
|
+
getTitle(): Promise<string>;
|
|
280
283
|
}
|
|
281
284
|
|
|
282
285
|
interface Group<TItem = unknown> {
|
|
@@ -483,9 +486,11 @@ declare abstract class AbstractDropDownMenuList extends AbstractElementWithParen
|
|
|
483
486
|
protected abstract getButtonTitleBy(name: string): By;
|
|
484
487
|
protected buttonNotDisplayedError(name: string): string;
|
|
485
488
|
private clickItemBy;
|
|
486
|
-
private
|
|
489
|
+
private getElementByPath;
|
|
487
490
|
clickButton(name: string | string[]): Promise<void>;
|
|
488
491
|
clickButtonByTitle(title: string | string[]): Promise<void>;
|
|
492
|
+
getMenuItemElementByTitle(title: string | string[]): Promise<WebElement>;
|
|
493
|
+
getMenuItemElementByName(name: string | string[]): Promise<WebElement>;
|
|
489
494
|
isVisible(): Promise<boolean>;
|
|
490
495
|
}
|
|
491
496
|
|
|
@@ -495,10 +500,21 @@ declare abstract class AbstractDropDownMenuButton extends AbstractElementWithPar
|
|
|
495
500
|
protected openDropdownMenu(): Promise<void>;
|
|
496
501
|
clickButton(name: string | string[]): Promise<void>;
|
|
497
502
|
clickButtonByTitle(title: string | string[]): Promise<void>;
|
|
503
|
+
getMenuItemElementByTitle(title: string | string[]): Promise<WebElement>;
|
|
504
|
+
getMenuItemElementByName(name: string | string[]): Promise<WebElement>;
|
|
498
505
|
}
|
|
499
506
|
|
|
500
507
|
declare class ToolbarMenu extends AbstractDropDownMenuButton {
|
|
501
508
|
constructor(parentCssSelector: string, formName: string, name: string, driver?: WebDriver);
|
|
509
|
+
private checkNameValue;
|
|
510
|
+
private checkTitleValue;
|
|
511
|
+
private buttonByName;
|
|
512
|
+
private buttonByTitle;
|
|
513
|
+
buttonIsDisplayed(name: string | string[]): Promise<boolean>;
|
|
514
|
+
buttonByTitleIsDisplayed(title: string | string[]): Promise<boolean>;
|
|
515
|
+
buttonTitle(name: string | string[]): Promise<string>;
|
|
516
|
+
buttonIsDisabled(name: string | string[]): Promise<boolean>;
|
|
517
|
+
buttonByTitleIsDisabled(title: string | string[]): Promise<boolean>;
|
|
502
518
|
clickButton(name: string | string[]): Promise<void>;
|
|
503
519
|
clickButtonByTitle(title: string | string[]): Promise<void>;
|
|
504
520
|
}
|
|
@@ -512,6 +528,7 @@ declare class ToolbarItem extends AbstractElementWithParent implements Button {
|
|
|
512
528
|
click(): Promise<void>;
|
|
513
529
|
isDisabled(): Promise<boolean>;
|
|
514
530
|
isDisplayed(): Promise<boolean>;
|
|
531
|
+
getTitle(): Promise<string>;
|
|
515
532
|
get menu(): ToolbarMenu;
|
|
516
533
|
}
|
|
517
534
|
|
|
@@ -968,6 +985,7 @@ declare class DialogButton extends AbstractButton implements Button {
|
|
|
968
985
|
constructor(parentCssSelector: string, text: string, driver?: WebDriver);
|
|
969
986
|
getElement(): Promise<WebElement>;
|
|
970
987
|
protected buttonNotDisplayedError(): string;
|
|
988
|
+
getTitle(): Promise<string>;
|
|
971
989
|
}
|
|
972
990
|
declare class Dialog extends AbstractElement {
|
|
973
991
|
constructor(driver?: WebDriver);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TreeView
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q4YMEUH5.mjs";
|
|
4
4
|
import {
|
|
5
5
|
FilterPanel,
|
|
6
6
|
FormFilterField,
|
|
7
7
|
ListForm,
|
|
8
8
|
PanelFilterField
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QP2EDHX5.mjs";
|
|
10
10
|
import {
|
|
11
11
|
FormEdit
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-55ABPMZ7.mjs";
|
|
13
13
|
import {
|
|
14
14
|
AbstractButton,
|
|
15
15
|
AbstractElement,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
wait,
|
|
33
33
|
waitElementIsClickable_default,
|
|
34
34
|
waitElementIsVisible
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-BSYJBQIG.mjs";
|
|
36
36
|
|
|
37
37
|
// src/pageObjects/pages/LoginPage.ts
|
|
38
38
|
var LOGIN_PATH = "/login";
|
|
@@ -173,6 +173,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
173
173
|
*/
|
|
174
174
|
async search(title) {
|
|
175
175
|
const searchComponent = this.getSearchComponent();
|
|
176
|
+
await this.searchClear();
|
|
176
177
|
await searchComponent.setValue(title);
|
|
177
178
|
await wait(
|
|
178
179
|
async () => {
|
|
@@ -277,6 +278,9 @@ var DialogButton = class extends AbstractButton {
|
|
|
277
278
|
buttonNotDisplayedError() {
|
|
278
279
|
return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
|
|
279
280
|
}
|
|
281
|
+
getTitle() {
|
|
282
|
+
throw new Error(`Method "getTitle()" is not working.`);
|
|
283
|
+
}
|
|
280
284
|
};
|
|
281
285
|
var Dialog = class extends AbstractElement {
|
|
282
286
|
constructor(driver) {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TreeView
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Q4YMEUH5.mjs";
|
|
4
4
|
import {
|
|
5
5
|
FilterPanel,
|
|
6
6
|
FormFilterField,
|
|
7
7
|
ListForm,
|
|
8
8
|
PanelFilterField
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QP2EDHX5.mjs";
|
|
10
10
|
import {
|
|
11
11
|
FormEdit
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-55ABPMZ7.mjs";
|
|
13
13
|
import {
|
|
14
14
|
AbstractButton,
|
|
15
15
|
AbstractElement,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
wait,
|
|
33
33
|
waitElementIsClickable_default,
|
|
34
34
|
waitElementIsVisible
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-BSYJBQIG.mjs";
|
|
36
36
|
|
|
37
37
|
// src/pageObjects/pages/LoginPage.ts
|
|
38
38
|
var LOGIN_PATH = "/login";
|
|
@@ -173,6 +173,7 @@ var SubsystemsPanel = class extends AbstractElement {
|
|
|
173
173
|
*/
|
|
174
174
|
async search(title) {
|
|
175
175
|
const searchComponent = this.getSearchComponent();
|
|
176
|
+
await this.searchClear();
|
|
176
177
|
await searchComponent.setValue(title);
|
|
177
178
|
await wait(
|
|
178
179
|
async () => {
|
|
@@ -277,6 +278,9 @@ var DialogButton = class extends AbstractButton {
|
|
|
277
278
|
buttonNotDisplayedError() {
|
|
278
279
|
return `Dialog button ${this.text} cannot be clicked. It is not displayed or it is disabled`;
|
|
279
280
|
}
|
|
281
|
+
getTitle() {
|
|
282
|
+
throw new Error(`Method "getTitle()" is not working.`);
|
|
283
|
+
}
|
|
280
284
|
};
|
|
281
285
|
var Dialog = class extends AbstractElement {
|
|
282
286
|
constructor(driver) {
|
package/package.json
CHANGED