UNPKG

systelab-components-wdio-test

Version:
99 lines (98 loc) 3.92 kB
import { Widget } from './widget.js'; import { Label } from './label.js'; import { InputField } from './inputfield.js'; import { Button } from './button.js'; import { Link } from './link.js'; export class TwoList extends Widget { getAvailableFieldsCaption() { return new Label(this.allByCSS('div > div> label').get(0)); } getVisibleFieldsCaption() { return new Label(this.allByCSS('div > div > label').get(1)); } getAvailableFieldsFilter() { return new InputField(this.allByCSS('div > div> input').get(0)); } getVisibleFieldsFilter() { return new InputField(this.allByCSS('div > div> input').get(1)); } getAvailableItemByPosition(position) { return new Button(this.byId('available' + (position - 1))); } getVisibleItemByPosition(position) { return new Button(this.byId('element' + (position - 1))); } getMoveToRightButton() { return new Button(this.byClassName('icon-angle-right')); } getMoveToLeftButton() { return new 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(this.byId('slab-remove-all')); } getAddAllLink() { return new 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"]'); } }