systelab-components-wdio-test
Version:
Widgets to be use in the E2E Tests based in WDIO
103 lines (102 loc) • 4.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TwoList = void 0;
const widget_js_1 = require("./widget.js");
const label_js_1 = require("./label.js");
const inputfield_js_1 = require("./inputfield.js");
const button_js_1 = require("./button.js");
const link_js_1 = require("./link.js");
class TwoList extends widget_js_1.Widget {
getAvailableFieldsCaption() {
return new label_js_1.Label(this.allByCSS('div > div> label').get(0));
}
getVisibleFieldsCaption() {
return new label_js_1.Label(this.allByCSS('div > div > label').get(1));
}
getAvailableFieldsFilter() {
return new inputfield_js_1.InputField(this.allByCSS('div > div> input').get(0));
}
getVisibleFieldsFilter() {
return new inputfield_js_1.InputField(this.allByCSS('div > div> input').get(1));
}
getAvailableItemByPosition(position) {
return new button_js_1.Button(this.byId('available' + (position - 1)));
}
getVisibleItemByPosition(position) {
return new button_js_1.Button(this.byId('element' + (position - 1)));
}
getMoveToRightButton() {
return new button_js_1.Button(this.byClassName('icon-angle-right'));
}
getMoveToLeftButton() {
return new button_js_1.Button(this.byClassName('icon-angle-left'));
}
async getNumberOfAvailableItems() {
return this.getAllAvailableElemItems().count();
}
async getNumberOfSelectedAvailableItems() {
return this.getSelectedAvailableElemItems().count();
}
async getNumberOfVisibleItems() {
return this.getAllVisibleElemItems().count();
}
async getNumberOfSelectedVisibleItems() {
return this.getSelectedVisibleElemItems().count();
}
async getAllAvailableItems() {
const itemList = [];
const numberOfAvailableItems = await this.getNumberOfAvailableItems();
for (let position = 1; position <= numberOfAvailableItems; position++) {
itemList.push(await (this.byCSS(`[id^=available${position - 1}]`)).getText());
}
return itemList;
}
async getAllVisibleItems() {
const itemList = [];
const elemItems = this.getAllVisibleElemItems();
const numberOfVisibleItems = await elemItems.count();
for (let position = 1; position <= numberOfVisibleItems; position++) {
itemList.push(await elemItems.get(position - 1).getText());
}
return itemList;
}
async getSelectedAvailableItemPositions() {
const positionList = [];
const elemItems = this.getSelectedAvailableElemItems();
const numberOfSelectedItems = await elemItems.count();
for (let index = 0; index < numberOfSelectedItems; index++) {
let positionOfSelectedItem = parseInt((await elemItems.get(index).getAttribute('id')).replace('available', '')) + 1;
positionList.push(positionOfSelectedItem);
}
return positionList;
}
async getSelectedVisibleItemPositions() {
const positionList = [];
const elemItems = this.getSelectedVisibleElemItems();
const numberOfSelectedItems = await elemItems.count();
for (let index = 0; index < numberOfSelectedItems; index++) {
let positionOfSelectedItem = parseInt((await elemItems.get(index).getAttribute('id')).replace('element', '')) + 1;
positionList.push(positionOfSelectedItem);
}
return positionList;
}
getRemoveAllLink() {
return new link_js_1.Link(this.byId('slab-remove-all'));
}
getAddAllLink() {
return new link_js_1.Link(this.byId('slab-add-all'));
}
getAllVisibleElemItems() {
return this.allByCSS('div[class~="list-group"] > div[class~="slab-sortable-list-row"]');
}
getAllAvailableElemItems() {
return this.allByCSS('li[id^=available]');
}
getSelectedVisibleElemItems() {
return this.allByCSS('div[class~="list-group"] > div[class~="slab-sortable-list-row-selected"]');
}
getSelectedAvailableElemItems() {
return this.allByCSS('li[class~="slab-twolistboxrowselected"]');
}
}
exports.TwoList = TwoList;