Size: a a a

2019 November 15

Ri

Rustam is not a function in JS for testing
Oleksandr Pelykh
использую VS code
добавил ESlint extension
но он не работает. не показывает ошибки синтаксиса из конфига

* сам eslint работает, если запускать руками
для ts или только js?
источник

OP

Oleksandr Pelykh in JS for testing
Rustam is not a function
для ts или только js?
ts
источник

OP

Oleksandr Pelykh in JS for testing
Oleksandr Khotemskyi
перезапусти vscode для начала, и проверь что конфиг у плагина правильно прописан
перезапускал. конфиг прописан
источник

m

mkots in JS for testing
А какой у этого кейс? Что-то понять не могу
источник

OK

Oleksandr Khotemskyi in JS for testing
mkots
А какой у этого кейс? Что-то понять не могу
компоненты свои
источник

OK

Oleksandr Khotemskyi in JS for testing
mkots
А какой у этого кейс? Что-то понять не могу
я хочу по аналогии с моей либой для протрактора сделать либу для wdio - https://github.com/Xotabu4/protractor-element-extend#creating-own-single-fragment
источник

m

mkots in JS for testing
Какая-то очень странная задача. Пока не могу придумать зачем бы мне такое понадобилось
источник

AP

Alexander Popov in JS for testing
mkots
Какая-то очень странная задача. Пока не могу придумать зачем бы мне такое понадобилось
а чего нет, свои доменные элементы с функционалом элементов
источник

OK

Oleksandr Khotemskyi in JS for testing
mkots
Какая-то очень странная задача. Пока не могу придумать зачем бы мне такое понадобилось
class SearchResults extends FragmentsArray<SearchResult> {
    discountedResults(): SearchResults<SearchResult> {
           return this.filter(result => result.isDiscounted())
    }
}

class SearchResult extends Fragment {
   isDiscounted() {
        return this.$(‘.discountlabel’).isDisplayed()
   }

   price() {
        return this.$(‘.price’)
   }
}

const results = new SearchResults($$(‘div.results’))

results.length // native array methods supported

const discounted = results.discountedResults() // as well as additional own methods

discounted[0].price() // each element of array is instance of SearchResult with additional methods, not just raw WebElement
источник

OK

Oleksandr Khotemskyi in JS for testing
ого
источник

AP

Alexander Popov in JS for testing
только я предпочитаю вигжеты все равно
источник

OK

Oleksandr Khotemskyi in JS for testing
Alexander Popov
только я предпочитаю вигжеты все равно
типа врапить вместо наследования? или что
источник

AP

Alexander Popov in JS for testing
да
источник

OK

Oleksandr Khotemskyi in JS for testing
ну это проще, но зато как приятно когда у тебя унаследовано делать -

browser.wait(EC.visibilityOf(searchResults[0]))
источник

OK

Oleksandr Khotemskyi in JS for testing
тупо везде где WebElement можно кидать свои фрагменты\компонетны
источник

OK

Oleksandr Khotemskyi in JS for testing
или

browser.execute(el => el.click(), searchResults[0]) - передать в executeScript свой кастомный элемент как параметр
источник

AP

Alexander Popov in JS for testing
Oleksandr Khotemskyi
ну это проще, но зато как приятно когда у тебя унаследовано делать -

browser.wait(EC.visibilityOf(searchResults[0]))
ага...вместо results.get(0).shouldBeVisible()
источник

AP

Alexander Popov in JS for testing
Oleksandr Khotemskyi
или

browser.execute(el => el.click(), searchResults[0]) - передать в executeScript свой кастомный элемент как параметр
это тоже внутри
источник

OK

Oleksandr Khotemskyi in JS for testing
совместимость с либами, все че хочешь. + еще можно переопределять методы WebElement -

class OwnElement extends Fragment {
    isDisplayed() {
         return super.isDisplayed() && !$(‘loader’).isDisplayed()
    }
}

browser.wait(EC.visibilityOf(new OwnElement()))
источник

OK

Oleksandr Khotemskyi in JS for testing
теперь если вызовешь visibilityOf на этом своем элементе он дождется не только свою видимость но и что лоадер пропал
источник