UNPKG

cdtsuite

Version:

Config driven testing suite for protractor

63 lines (50 loc) 1.75 kB
let helper = {}; helper.typeahead = function ($element, val) { if (Array.isArray(val)) { val.forEach(function (item) { helper.selectFromTypeahead($element, item); }); } else { helper.selectFromTypeahead($element, val); } }; helper.input = function ($element, val) { $element.clear().sendKeys(val); }; helper.select = function ($element, val) { if (Number.isInteger(val)) { helper.selectOption($element, val); } else if (typeof val === 'string') { helper.findOption($element, val); } }; helper.multiselect = function ($element, val) { if (Array.isArray(val)) { val.forEach(function (item) { helper.selectTag($element, item); }); } else { helper.selectTag($element, val); } }; helper.richText = function ($element, val) { $element.all(by.model('html')).get(0).click(); browser.actions().sendKeys(val).perform(); }; // ****************************************************** helper.selectFromTypeahead = function ($element, val) { $element.clear().sendKeys(val); element.all(by.repeater('match in matches track by $index')).first().click(); }; helper.findOption = function ($element, val) { $element.$(`option[value="${val}"]`).click(); }; helper.selectOption = function ($element, val) { $element.all(by.tagName('option')).get(val).click(); }; helper.selectTag = function ($element, val) { $element.element(by.tagName('input')).sendKeys(val); $element.all(by.css('.suggestion-item')).get(0).click(); expect($element.element(by.cssContainingText('.tag-item', val)).isPresent()).toBeTruthy(); }; export default helper;