d5-testing-library 1.8.0-alpha.2 → 1.8.0-alpha.4
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-VOA5OIJ2.mjs +7 -0
- package/dist/ListForm-FHAD7GLJ.mjs +7 -0
- package/dist/TreeView-QDCXAJZ2.mjs +8 -0
- package/dist/{chunk-4PUDCQM6.mjs → chunk-HXXWTKEP.mjs} +3 -1
- package/dist/{chunk-ZT3B7BQ2.mjs → chunk-JGX24TXO.mjs} +51 -17
- package/dist/{chunk-H3M6VBPP.mjs → chunk-LLH235HI.mjs} +1 -1
- package/dist/{chunk-LTHDA5XH.mjs → chunk-TFKTH7JY.mjs} +26 -8
- package/dist/cjs/d5-testing-library.cjs +75 -9
- package/dist/d5-testing-library.d.ts +20 -2
- package/dist/d5-testing-library.legacy-esm.js +4 -4
- package/dist/d5-testing-library.mjs +4 -4
- package/package.json +1 -1
- package/dist/FormEdit-PRX4TB67.mjs +0 -7
- package/dist/ListForm-N6QNZXQE.mjs +0 -7
- package/dist/TreeView-JOHAYS2S.mjs +0 -8
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ListForm
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TFKTH7JY.mjs";
|
|
4
4
|
|
|
5
5
|
// src/pageObjects/elements/Forms/TreeView.ts
|
|
6
6
|
var TREELIST_HEADER_CSS_SELECTOR = ".dx-treelist-headers .dx-treelist-content:not(.dx-datagrid-content-fixed)";
|
|
7
|
+
var FIXED_TREELIST_CONTENT_CSS_SELECTOR = ".dx-fixed-columns .dx-treelist-content.dx-treelist-content-fixed";
|
|
7
8
|
var TreeView = class extends ListForm {
|
|
8
9
|
constructor(driver) {
|
|
9
10
|
super(driver);
|
|
10
11
|
this.popupContainerCssSelector = `.popup .wrapper-tree-view-${this.formName}`;
|
|
11
12
|
this.headerCssSelector = TREELIST_HEADER_CSS_SELECTOR;
|
|
13
|
+
this.fixedTableContentCssSelector = FIXED_TREELIST_CONTENT_CSS_SELECTOR;
|
|
12
14
|
}
|
|
13
15
|
};
|
|
14
16
|
|
|
@@ -736,6 +736,44 @@ function createFormButtonTestId(formName, itemName) {
|
|
|
736
736
|
function createSubSystemTestId(itemName) {
|
|
737
737
|
return `${"subsystem-item" /* SUBSYSTEM_ITEM */}-${itemName}`;
|
|
738
738
|
}
|
|
739
|
+
function createEditorButtonTestId(itemName) {
|
|
740
|
+
return `${"editor-button" /* EDITOR_BUTTON */}-${itemName}`;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
// src/utils/waitElementIsClickable.ts
|
|
744
|
+
async function waitElementIsClickable({
|
|
745
|
+
element,
|
|
746
|
+
timeout,
|
|
747
|
+
errorMessage,
|
|
748
|
+
driver
|
|
749
|
+
}) {
|
|
750
|
+
driver = driver ?? config().driver;
|
|
751
|
+
await wait(async () => {
|
|
752
|
+
const isDisabled = await element.getCssValue("pointer-events") === "none";
|
|
753
|
+
return await element.isDisplayed() && !isDisabled;
|
|
754
|
+
}, driver, errorMessage, timeout ?? config().timeout);
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
// src/pageObjects/elements/EditorButton.ts
|
|
758
|
+
var EditorButton = class extends AbstractElementWithParent {
|
|
759
|
+
name;
|
|
760
|
+
constructor(parentCssSelector, name, driver) {
|
|
761
|
+
super(parentCssSelector, byTestIdCssSelector(createEditorButtonTestId(name)), driver);
|
|
762
|
+
this.name = name;
|
|
763
|
+
}
|
|
764
|
+
buttonNotDisplayedError() {
|
|
765
|
+
return `Editor Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
766
|
+
}
|
|
767
|
+
async click() {
|
|
768
|
+
const button = await this.getElement();
|
|
769
|
+
await waitElementIsClickable({
|
|
770
|
+
element: button,
|
|
771
|
+
errorMessage: this.buttonNotDisplayedError(),
|
|
772
|
+
driver: this.driver
|
|
773
|
+
});
|
|
774
|
+
await click(button, this.driver);
|
|
775
|
+
}
|
|
776
|
+
};
|
|
739
777
|
|
|
740
778
|
// src/pageObjects/elements/AbstractEditor.ts
|
|
741
779
|
var AbstractEditor = class extends AbstractElementWithParent {
|
|
@@ -802,6 +840,16 @@ var AbstractEditor = class extends AbstractElementWithParent {
|
|
|
802
840
|
await this.initEditor();
|
|
803
841
|
return this.editor.isReadonly();
|
|
804
842
|
}
|
|
843
|
+
/**
|
|
844
|
+
* Находит кнопку на поле по имени
|
|
845
|
+
* @example
|
|
846
|
+
* const form= new MyForm();
|
|
847
|
+
* //...
|
|
848
|
+
* await form.field('Name').button('editorButton).click()
|
|
849
|
+
*/
|
|
850
|
+
button(name) {
|
|
851
|
+
return new EditorButton(this.getFullCssSelector(), name, this.driver);
|
|
852
|
+
}
|
|
805
853
|
};
|
|
806
854
|
|
|
807
855
|
// src/pageObjects/elements/FormField.ts
|
|
@@ -814,20 +862,6 @@ var FormField = class extends AbstractEditor {
|
|
|
814
862
|
// src/pageObjects/elements/Forms/Form.ts
|
|
815
863
|
import { By as By14 } from "selenium-webdriver";
|
|
816
864
|
|
|
817
|
-
// src/utils/waitElementIsClickable.ts
|
|
818
|
-
async function waitElementIsClickable({
|
|
819
|
-
element,
|
|
820
|
-
timeout,
|
|
821
|
-
errorMessage,
|
|
822
|
-
driver
|
|
823
|
-
}) {
|
|
824
|
-
driver = driver ?? config().driver;
|
|
825
|
-
await wait(async () => {
|
|
826
|
-
const isDisabled = await element.getCssValue("pointer-events") === "none";
|
|
827
|
-
return await element.isDisplayed() && !isDisabled;
|
|
828
|
-
}, driver, errorMessage, timeout ?? config().timeout);
|
|
829
|
-
}
|
|
830
|
-
|
|
831
865
|
// src/pageObjects/elements/TableToolbar/AbstractButton.ts
|
|
832
866
|
var AbstractButton = class extends AbstractElementWithParent {
|
|
833
867
|
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
@@ -1114,15 +1148,15 @@ async function classDependencyInjector(formType) {
|
|
|
1114
1148
|
let SubFormFactoryClass;
|
|
1115
1149
|
switch (formType) {
|
|
1116
1150
|
case "1" /* LIST */:
|
|
1117
|
-
SubFormFactoryClass = (await import("./ListForm-
|
|
1151
|
+
SubFormFactoryClass = (await import("./ListForm-FHAD7GLJ.mjs")).default;
|
|
1118
1152
|
break;
|
|
1119
1153
|
case "3" /* TREE */:
|
|
1120
|
-
SubFormFactoryClass = (await import("./TreeView-
|
|
1154
|
+
SubFormFactoryClass = (await import("./TreeView-QDCXAJZ2.mjs")).default;
|
|
1121
1155
|
break;
|
|
1122
1156
|
case "2" /* EDIT */:
|
|
1123
1157
|
case "99" /* FREE_FORM */:
|
|
1124
1158
|
case "4" /* REPORT */:
|
|
1125
|
-
SubFormFactoryClass = (await import("./FormEdit-
|
|
1159
|
+
SubFormFactoryClass = (await import("./FormEdit-VOA5OIJ2.mjs")).default;
|
|
1126
1160
|
break;
|
|
1127
1161
|
default:
|
|
1128
1162
|
throw new Error(`Unsupported form type ${formType}`);
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
wait,
|
|
17
17
|
waitElementIsClickable,
|
|
18
18
|
waitElementIsVisible
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-JGX24TXO.mjs";
|
|
20
20
|
|
|
21
21
|
// src/pageObjects/elements/Table/Table.ts
|
|
22
22
|
import { By as By5 } from "selenium-webdriver";
|
|
@@ -94,10 +94,12 @@ var DX_DATA_ROW_CLASS = "dx-data-row";
|
|
|
94
94
|
var Row = class extends AbstractElementWithParent {
|
|
95
95
|
index;
|
|
96
96
|
getColumnBy;
|
|
97
|
-
|
|
97
|
+
fixedTableContentCssSelector;
|
|
98
|
+
constructor(parentCssSelector, fixedTableContentCssSelector, index, driver, getColumnBy) {
|
|
98
99
|
super(parentCssSelector, getCssRowByIndexSelector(index), driver);
|
|
99
100
|
this.index = index;
|
|
100
101
|
this.getColumnBy = getColumnBy;
|
|
102
|
+
this.fixedTableContentCssSelector = fixedTableContentCssSelector;
|
|
101
103
|
}
|
|
102
104
|
_getCell({ index, name, title }) {
|
|
103
105
|
return new Cell(
|
|
@@ -147,12 +149,11 @@ var Row = class extends AbstractElementWithParent {
|
|
|
147
149
|
return result;
|
|
148
150
|
}
|
|
149
151
|
async clickInlineButton(buttonClass) {
|
|
150
|
-
const FIXED_TABLE_CSS_SELECTOR = ".dx-fixed-columns .dx-datagrid-content.dx-datagrid-content-fixed";
|
|
151
152
|
const buttonCssSelector = `.${DX_DATA_ROW_CLASS}[aria-rowindex="${transformInputIndex(
|
|
152
153
|
this.index
|
|
153
154
|
)}"] .${buttonClass}`;
|
|
154
155
|
const button = await fixElementStaleError(
|
|
155
|
-
By3.css(`${this.parentCssSelector} ${
|
|
156
|
+
By3.css(`${this.parentCssSelector} ${this.fixedTableContentCssSelector} ${buttonCssSelector}`),
|
|
156
157
|
this.driver
|
|
157
158
|
);
|
|
158
159
|
return click(button, this.driver);
|
|
@@ -239,10 +240,12 @@ var Column = class extends AbstractElementWithParent {
|
|
|
239
240
|
var Table = class extends AbstractElementWithParent {
|
|
240
241
|
formName;
|
|
241
242
|
headerCssSelector;
|
|
242
|
-
|
|
243
|
+
fixedTableContentCssSelector;
|
|
244
|
+
constructor(parentCssSelector, headerCssSelector, fixedTableContentCssSelector, formName, driver) {
|
|
243
245
|
super(parentCssSelector, `#${createTableId(formName)}`, driver);
|
|
244
246
|
this.formName = formName;
|
|
245
247
|
this.headerCssSelector = headerCssSelector;
|
|
248
|
+
this.fixedTableContentCssSelector = fixedTableContentCssSelector;
|
|
246
249
|
}
|
|
247
250
|
getColumnBy = (args) => {
|
|
248
251
|
if (args.title) {
|
|
@@ -251,7 +254,7 @@ var Table = class extends AbstractElementWithParent {
|
|
|
251
254
|
return this.getColumnByName(args.name);
|
|
252
255
|
};
|
|
253
256
|
getRowByIndex(index) {
|
|
254
|
-
return new Row(this.getFullCssSelector(), index, this.driver, this.getColumnBy);
|
|
257
|
+
return new Row(this.getFullCssSelector(), this.fixedTableContentCssSelector, index, this.driver, this.getColumnBy);
|
|
255
258
|
}
|
|
256
259
|
getColumnByIndex(index) {
|
|
257
260
|
return new Column({
|
|
@@ -283,7 +286,13 @@ var Table = class extends AbstractElementWithParent {
|
|
|
283
286
|
const rows = await this.driver.findElements(By5.css(`${this.getFullCssSelector()} .dx-row.dx-data-row`));
|
|
284
287
|
const result = [];
|
|
285
288
|
rows.forEach((_, index) => {
|
|
286
|
-
const newRow = new Row(
|
|
289
|
+
const newRow = new Row(
|
|
290
|
+
this.getFullCssSelector(),
|
|
291
|
+
this.fixedTableContentCssSelector,
|
|
292
|
+
index,
|
|
293
|
+
this.driver,
|
|
294
|
+
this.getColumnBy
|
|
295
|
+
);
|
|
287
296
|
result.push(newRow);
|
|
288
297
|
});
|
|
289
298
|
return result;
|
|
@@ -952,12 +961,15 @@ var ColumnFilter = class extends AbstractElement {
|
|
|
952
961
|
|
|
953
962
|
// src/pageObjects/elements/Forms/ListForm.ts
|
|
954
963
|
var DATAGRID_HEADER_CSS_SELECTOR = ".dx-datagrid-headers .dx-datagrid-content:not(.dx-datagrid-content-fixed)";
|
|
964
|
+
var FIXED_DATAGRID_CONTENT_CSS_SELECTOR = ".dx-fixed-columns .dx-datagrid-content.dx-datagrid-content-fixed";
|
|
955
965
|
var ListForm = class extends Form {
|
|
956
966
|
headerCssSelector;
|
|
967
|
+
fixedTableContentCssSelector;
|
|
957
968
|
constructor(driver) {
|
|
958
969
|
super(driver);
|
|
959
970
|
this.popupContainerCssSelector = `.popup .form-inline-${this.formName}`;
|
|
960
971
|
this.headerCssSelector = DATAGRID_HEADER_CSS_SELECTOR;
|
|
972
|
+
this.fixedTableContentCssSelector = FIXED_DATAGRID_CONTENT_CSS_SELECTOR;
|
|
961
973
|
}
|
|
962
974
|
/**
|
|
963
975
|
* Находит таблицу
|
|
@@ -967,7 +979,13 @@ var ListForm = class extends Form {
|
|
|
967
979
|
* expect(listForm.table());
|
|
968
980
|
*/
|
|
969
981
|
table() {
|
|
970
|
-
return new Table(
|
|
982
|
+
return new Table(
|
|
983
|
+
this.containerCssSelector,
|
|
984
|
+
this.headerCssSelector,
|
|
985
|
+
this.fixedTableContentCssSelector,
|
|
986
|
+
this.formName,
|
|
987
|
+
this.driver
|
|
988
|
+
);
|
|
971
989
|
}
|
|
972
990
|
/**
|
|
973
991
|
* Находит таблицу
|
|
@@ -1003,6 +1003,9 @@ function createFormButtonTestId(formName, itemName) {
|
|
|
1003
1003
|
function createSubSystemTestId(itemName) {
|
|
1004
1004
|
return `${"subsystem-item" /* SUBSYSTEM_ITEM */}-${itemName}`;
|
|
1005
1005
|
}
|
|
1006
|
+
function createEditorButtonTestId(itemName) {
|
|
1007
|
+
return `${"editor-button" /* EDITOR_BUTTON */}-${itemName}`;
|
|
1008
|
+
}
|
|
1006
1009
|
var init_createDataTestId = __esm({
|
|
1007
1010
|
"src/utils/createDataTestId.ts"() {
|
|
1008
1011
|
"use strict";
|
|
@@ -1510,10 +1513,12 @@ var init_Row = __esm({
|
|
|
1510
1513
|
Row = class extends AbstractElementWithParent {
|
|
1511
1514
|
index;
|
|
1512
1515
|
getColumnBy;
|
|
1513
|
-
|
|
1516
|
+
fixedTableContentCssSelector;
|
|
1517
|
+
constructor(parentCssSelector, fixedTableContentCssSelector, index, driver, getColumnBy) {
|
|
1514
1518
|
super(parentCssSelector, getCssRowByIndexSelector(index), driver);
|
|
1515
1519
|
this.index = index;
|
|
1516
1520
|
this.getColumnBy = getColumnBy;
|
|
1521
|
+
this.fixedTableContentCssSelector = fixedTableContentCssSelector;
|
|
1517
1522
|
}
|
|
1518
1523
|
_getCell({ index, name, title }) {
|
|
1519
1524
|
return new Cell(
|
|
@@ -1563,12 +1568,11 @@ var init_Row = __esm({
|
|
|
1563
1568
|
return result;
|
|
1564
1569
|
}
|
|
1565
1570
|
async clickInlineButton(buttonClass) {
|
|
1566
|
-
const FIXED_TABLE_CSS_SELECTOR = ".dx-fixed-columns .dx-datagrid-content.dx-datagrid-content-fixed";
|
|
1567
1571
|
const buttonCssSelector = `.${DX_DATA_ROW_CLASS}[aria-rowindex="${transformInputIndex(
|
|
1568
1572
|
this.index
|
|
1569
1573
|
)}"] .${buttonClass}`;
|
|
1570
1574
|
const button = await fixElementStaleError(
|
|
1571
|
-
import_selenium_webdriver21.By.css(`${this.parentCssSelector} ${
|
|
1575
|
+
import_selenium_webdriver21.By.css(`${this.parentCssSelector} ${this.fixedTableContentCssSelector} ${buttonCssSelector}`),
|
|
1572
1576
|
this.driver
|
|
1573
1577
|
);
|
|
1574
1578
|
return click(button, this.driver);
|
|
@@ -1662,6 +1666,38 @@ var init_Column = __esm({
|
|
|
1662
1666
|
}
|
|
1663
1667
|
});
|
|
1664
1668
|
|
|
1669
|
+
// src/pageObjects/elements/EditorButton.ts
|
|
1670
|
+
var EditorButton;
|
|
1671
|
+
var init_EditorButton = __esm({
|
|
1672
|
+
"src/pageObjects/elements/EditorButton.ts"() {
|
|
1673
|
+
"use strict";
|
|
1674
|
+
init_locators();
|
|
1675
|
+
init_createDataTestId();
|
|
1676
|
+
init_AbstractElementWithParent();
|
|
1677
|
+
init_waitElementIsClickable();
|
|
1678
|
+
init_actions();
|
|
1679
|
+
EditorButton = class extends AbstractElementWithParent {
|
|
1680
|
+
name;
|
|
1681
|
+
constructor(parentCssSelector, name, driver) {
|
|
1682
|
+
super(parentCssSelector, byTestIdCssSelector(createEditorButtonTestId(name)), driver);
|
|
1683
|
+
this.name = name;
|
|
1684
|
+
}
|
|
1685
|
+
buttonNotDisplayedError() {
|
|
1686
|
+
return `Editor Button ${this.name} cannot be clicked. It is not displayed or it is disabled`;
|
|
1687
|
+
}
|
|
1688
|
+
async click() {
|
|
1689
|
+
const button = await this.getElement();
|
|
1690
|
+
await waitElementIsClickable({
|
|
1691
|
+
element: button,
|
|
1692
|
+
errorMessage: this.buttonNotDisplayedError(),
|
|
1693
|
+
driver: this.driver
|
|
1694
|
+
});
|
|
1695
|
+
await click(button, this.driver);
|
|
1696
|
+
}
|
|
1697
|
+
};
|
|
1698
|
+
}
|
|
1699
|
+
});
|
|
1700
|
+
|
|
1665
1701
|
// src/pageObjects/elements/AbstractEditor.ts
|
|
1666
1702
|
var AbstractEditor;
|
|
1667
1703
|
var init_AbstractEditor2 = __esm({
|
|
@@ -1669,6 +1705,7 @@ var init_AbstractEditor2 = __esm({
|
|
|
1669
1705
|
"use strict";
|
|
1670
1706
|
init_AbstractElementWithParent();
|
|
1671
1707
|
init_Editors();
|
|
1708
|
+
init_EditorButton();
|
|
1672
1709
|
AbstractEditor = class extends AbstractElementWithParent {
|
|
1673
1710
|
editor;
|
|
1674
1711
|
constructor(parentCssSelector, elementCssSelector, driver) {
|
|
@@ -1733,6 +1770,16 @@ var init_AbstractEditor2 = __esm({
|
|
|
1733
1770
|
await this.initEditor();
|
|
1734
1771
|
return this.editor.isReadonly();
|
|
1735
1772
|
}
|
|
1773
|
+
/**
|
|
1774
|
+
* Находит кнопку на поле по имени
|
|
1775
|
+
* @example
|
|
1776
|
+
* const form= new MyForm();
|
|
1777
|
+
* //...
|
|
1778
|
+
* await form.field('Name').button('editorButton).click()
|
|
1779
|
+
*/
|
|
1780
|
+
button(name) {
|
|
1781
|
+
return new EditorButton(this.getFullCssSelector(), name, this.driver);
|
|
1782
|
+
}
|
|
1736
1783
|
};
|
|
1737
1784
|
}
|
|
1738
1785
|
});
|
|
@@ -1767,10 +1814,12 @@ var init_Table = __esm({
|
|
|
1767
1814
|
Table = class extends AbstractElementWithParent {
|
|
1768
1815
|
formName;
|
|
1769
1816
|
headerCssSelector;
|
|
1770
|
-
|
|
1817
|
+
fixedTableContentCssSelector;
|
|
1818
|
+
constructor(parentCssSelector, headerCssSelector, fixedTableContentCssSelector, formName, driver) {
|
|
1771
1819
|
super(parentCssSelector, `#${createTableId(formName)}`, driver);
|
|
1772
1820
|
this.formName = formName;
|
|
1773
1821
|
this.headerCssSelector = headerCssSelector;
|
|
1822
|
+
this.fixedTableContentCssSelector = fixedTableContentCssSelector;
|
|
1774
1823
|
}
|
|
1775
1824
|
getColumnBy = (args) => {
|
|
1776
1825
|
if (args.title) {
|
|
@@ -1779,7 +1828,7 @@ var init_Table = __esm({
|
|
|
1779
1828
|
return this.getColumnByName(args.name);
|
|
1780
1829
|
};
|
|
1781
1830
|
getRowByIndex(index) {
|
|
1782
|
-
return new Row(this.getFullCssSelector(), index, this.driver, this.getColumnBy);
|
|
1831
|
+
return new Row(this.getFullCssSelector(), this.fixedTableContentCssSelector, index, this.driver, this.getColumnBy);
|
|
1783
1832
|
}
|
|
1784
1833
|
getColumnByIndex(index) {
|
|
1785
1834
|
return new Column({
|
|
@@ -1811,7 +1860,13 @@ var init_Table = __esm({
|
|
|
1811
1860
|
const rows = await this.driver.findElements(import_selenium_webdriver23.By.css(`${this.getFullCssSelector()} .dx-row.dx-data-row`));
|
|
1812
1861
|
const result = [];
|
|
1813
1862
|
rows.forEach((_, index) => {
|
|
1814
|
-
const newRow = new Row(
|
|
1863
|
+
const newRow = new Row(
|
|
1864
|
+
this.getFullCssSelector(),
|
|
1865
|
+
this.fixedTableContentCssSelector,
|
|
1866
|
+
index,
|
|
1867
|
+
this.driver,
|
|
1868
|
+
this.getColumnBy
|
|
1869
|
+
);
|
|
1815
1870
|
result.push(newRow);
|
|
1816
1871
|
});
|
|
1817
1872
|
return result;
|
|
@@ -2594,7 +2649,7 @@ var ListForm_exports = {};
|
|
|
2594
2649
|
__export(ListForm_exports, {
|
|
2595
2650
|
default: () => ListForm
|
|
2596
2651
|
});
|
|
2597
|
-
var DATAGRID_HEADER_CSS_SELECTOR, ListForm;
|
|
2652
|
+
var DATAGRID_HEADER_CSS_SELECTOR, FIXED_DATAGRID_CONTENT_CSS_SELECTOR, ListForm;
|
|
2598
2653
|
var init_ListForm = __esm({
|
|
2599
2654
|
"src/pageObjects/elements/Forms/ListForm.ts"() {
|
|
2600
2655
|
"use strict";
|
|
@@ -2605,12 +2660,15 @@ var init_ListForm = __esm({
|
|
|
2605
2660
|
init_FilterPanel();
|
|
2606
2661
|
init_ColumnFilter();
|
|
2607
2662
|
DATAGRID_HEADER_CSS_SELECTOR = ".dx-datagrid-headers .dx-datagrid-content:not(.dx-datagrid-content-fixed)";
|
|
2663
|
+
FIXED_DATAGRID_CONTENT_CSS_SELECTOR = ".dx-fixed-columns .dx-datagrid-content.dx-datagrid-content-fixed";
|
|
2608
2664
|
ListForm = class extends Form {
|
|
2609
2665
|
headerCssSelector;
|
|
2666
|
+
fixedTableContentCssSelector;
|
|
2610
2667
|
constructor(driver) {
|
|
2611
2668
|
super(driver);
|
|
2612
2669
|
this.popupContainerCssSelector = `.popup .form-inline-${this.formName}`;
|
|
2613
2670
|
this.headerCssSelector = DATAGRID_HEADER_CSS_SELECTOR;
|
|
2671
|
+
this.fixedTableContentCssSelector = FIXED_DATAGRID_CONTENT_CSS_SELECTOR;
|
|
2614
2672
|
}
|
|
2615
2673
|
/**
|
|
2616
2674
|
* Находит таблицу
|
|
@@ -2620,7 +2678,13 @@ var init_ListForm = __esm({
|
|
|
2620
2678
|
* expect(listForm.table());
|
|
2621
2679
|
*/
|
|
2622
2680
|
table() {
|
|
2623
|
-
return new Table(
|
|
2681
|
+
return new Table(
|
|
2682
|
+
this.containerCssSelector,
|
|
2683
|
+
this.headerCssSelector,
|
|
2684
|
+
this.fixedTableContentCssSelector,
|
|
2685
|
+
this.formName,
|
|
2686
|
+
this.driver
|
|
2687
|
+
);
|
|
2624
2688
|
}
|
|
2625
2689
|
/**
|
|
2626
2690
|
* Находит таблицу
|
|
@@ -2667,17 +2731,19 @@ var TreeView_exports = {};
|
|
|
2667
2731
|
__export(TreeView_exports, {
|
|
2668
2732
|
default: () => TreeView
|
|
2669
2733
|
});
|
|
2670
|
-
var TREELIST_HEADER_CSS_SELECTOR, TreeView;
|
|
2734
|
+
var TREELIST_HEADER_CSS_SELECTOR, FIXED_TREELIST_CONTENT_CSS_SELECTOR, TreeView;
|
|
2671
2735
|
var init_TreeView = __esm({
|
|
2672
2736
|
"src/pageObjects/elements/Forms/TreeView.ts"() {
|
|
2673
2737
|
"use strict";
|
|
2674
2738
|
init_ListForm();
|
|
2675
2739
|
TREELIST_HEADER_CSS_SELECTOR = ".dx-treelist-headers .dx-treelist-content:not(.dx-datagrid-content-fixed)";
|
|
2740
|
+
FIXED_TREELIST_CONTENT_CSS_SELECTOR = ".dx-fixed-columns .dx-treelist-content.dx-treelist-content-fixed";
|
|
2676
2741
|
TreeView = class extends ListForm {
|
|
2677
2742
|
constructor(driver) {
|
|
2678
2743
|
super(driver);
|
|
2679
2744
|
this.popupContainerCssSelector = `.popup .wrapper-tree-view-${this.formName}`;
|
|
2680
2745
|
this.headerCssSelector = TREELIST_HEADER_CSS_SELECTOR;
|
|
2746
|
+
this.fixedTableContentCssSelector = FIXED_TREELIST_CONTENT_CSS_SELECTOR;
|
|
2681
2747
|
}
|
|
2682
2748
|
};
|
|
2683
2749
|
}
|
|
@@ -350,6 +350,13 @@ declare abstract class Form extends AbstractForm {
|
|
|
350
350
|
subForm(name: string): Promise<unknown>;
|
|
351
351
|
}
|
|
352
352
|
|
|
353
|
+
declare class EditorButton extends AbstractElementWithParent {
|
|
354
|
+
private readonly name;
|
|
355
|
+
constructor(parentCssSelector: string, name: string, driver?: WebDriver);
|
|
356
|
+
protected buttonNotDisplayedError(): string;
|
|
357
|
+
click(): Promise<void>;
|
|
358
|
+
}
|
|
359
|
+
|
|
353
360
|
declare class AbstractEditor extends AbstractElementWithParent implements Editor {
|
|
354
361
|
protected editor: Editor;
|
|
355
362
|
constructor(parentCssSelector: string, elementCssSelector: string, driver?: WebDriver);
|
|
@@ -387,6 +394,14 @@ declare class AbstractEditor extends AbstractElementWithParent implements Editor
|
|
|
387
394
|
* expect(await formEdit.field('TextFld').isReadonly()).toBe(false);
|
|
388
395
|
*/
|
|
389
396
|
isReadonly(): Promise<boolean>;
|
|
397
|
+
/**
|
|
398
|
+
* Находит кнопку на поле по имени
|
|
399
|
+
* @example
|
|
400
|
+
* const form= new MyForm();
|
|
401
|
+
* //...
|
|
402
|
+
* await form.field('Name').button('editorButton).click()
|
|
403
|
+
*/
|
|
404
|
+
button(name: string): EditorButton;
|
|
390
405
|
}
|
|
391
406
|
|
|
392
407
|
declare class FormField extends AbstractEditor {
|
|
@@ -495,7 +510,8 @@ declare class Row extends AbstractElementWithParent {
|
|
|
495
510
|
title?: string;
|
|
496
511
|
name?: string;
|
|
497
512
|
}) => Column;
|
|
498
|
-
|
|
513
|
+
protected fixedTableContentCssSelector: string;
|
|
514
|
+
constructor(parentCssSelector: string, fixedTableContentCssSelector: string, index: number, driver?: WebDriver, getColumnBy?: (_: {
|
|
499
515
|
title?: string;
|
|
500
516
|
name?: string;
|
|
501
517
|
}) => Column);
|
|
@@ -517,7 +533,8 @@ declare class Row extends AbstractElementWithParent {
|
|
|
517
533
|
declare class Table extends AbstractElementWithParent {
|
|
518
534
|
protected formName: string;
|
|
519
535
|
protected headerCssSelector: string;
|
|
520
|
-
|
|
536
|
+
protected fixedTableContentCssSelector: string;
|
|
537
|
+
constructor(parentCssSelector: string, headerCssSelector: string, fixedTableContentCssSelector: string, formName: string, driver?: WebDriver);
|
|
521
538
|
private getColumnBy;
|
|
522
539
|
getRowByIndex(index: number): Row;
|
|
523
540
|
getColumnByIndex(index: number): Column;
|
|
@@ -743,6 +760,7 @@ declare class ColumnFilter extends AbstractElement {
|
|
|
743
760
|
|
|
744
761
|
declare class ListForm extends Form {
|
|
745
762
|
protected headerCssSelector: string;
|
|
763
|
+
protected fixedTableContentCssSelector: string;
|
|
746
764
|
constructor(driver: WebDriver);
|
|
747
765
|
/**
|
|
748
766
|
* Находит таблицу
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TreeView
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HXXWTKEP.mjs";
|
|
4
4
|
import {
|
|
5
5
|
FilterPanel,
|
|
6
6
|
FormFilterField,
|
|
7
7
|
ListForm,
|
|
8
8
|
PanelFilterField
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TFKTH7JY.mjs";
|
|
10
10
|
import {
|
|
11
11
|
FormEdit
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-LLH235HI.mjs";
|
|
13
13
|
import {
|
|
14
14
|
AbstractButton,
|
|
15
15
|
AbstractElement,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
readonlyLocator,
|
|
31
31
|
wait,
|
|
32
32
|
waitElementIsVisible
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-JGX24TXO.mjs";
|
|
34
34
|
|
|
35
35
|
// src/pageObjects/pages/LoginPage.ts
|
|
36
36
|
var LOGIN_PATH = "/login";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
TreeView
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-HXXWTKEP.mjs";
|
|
4
4
|
import {
|
|
5
5
|
FilterPanel,
|
|
6
6
|
FormFilterField,
|
|
7
7
|
ListForm,
|
|
8
8
|
PanelFilterField
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TFKTH7JY.mjs";
|
|
10
10
|
import {
|
|
11
11
|
FormEdit
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-LLH235HI.mjs";
|
|
13
13
|
import {
|
|
14
14
|
AbstractButton,
|
|
15
15
|
AbstractElement,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
readonlyLocator,
|
|
31
31
|
wait,
|
|
32
32
|
waitElementIsVisible
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-JGX24TXO.mjs";
|
|
34
34
|
|
|
35
35
|
// src/pageObjects/pages/LoginPage.ts
|
|
36
36
|
var LOGIN_PATH = "/login";
|
package/package.json
CHANGED