X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fe2e%2Fsrc%2Futils%2Felements.ts;h=d9435e52052305eb6782542a8b08705c9f9a9462;hb=20cea0cdc0f80455fb04bed5b17802f01d59c640;hp=3ffa5defd38c8ef074d341ba39a0a68af6bdd3e3;hpb=3318147300b4f998adf728eb0a5a14a4c1829c51;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/e2e/src/utils/elements.ts b/client/e2e/src/utils/elements.ts index 3ffa5defd..d9435e520 100644 --- a/client/e2e/src/utils/elements.ts +++ b/client/e2e/src/utils/elements.ts @@ -1,9 +1,19 @@ -function getCheckbox (name: string) { - return $(`my-peertube-checkbox input[id=${name}]`).parentElement() +async function getCheckbox (name: string) { + const input = $(`my-peertube-checkbox input[id=${name}]`) + await input.waitForExist() + + return input.parentElement() +} + +function isCheckboxSelected (name: string) { + return $(`input[id=${name}]`).isSelected() } async function selectCustomSelect (id: string, valueLabel: string) { - await $(`[formcontrolname=${id}] .ng-arrow-wrapper`).click() + const wrapper = $(`[formcontrolname=${id}] .ng-arrow-wrapper`) + + await wrapper.waitForClickable() + await wrapper.click() const option = await $$(`[formcontrolname=${id}] .ng-option`).filter(async o => { const text = await o.getText() @@ -16,7 +26,18 @@ async function selectCustomSelect (id: string, valueLabel: string) { return option.click() } +async function findParentElement ( + el: WebdriverIO.Element, + finder: (el: WebdriverIO.Element) => Promise +) { + if (await finder(el) === true) return el + + return findParentElement(await el.parentElement(), finder) +} + export { getCheckbox, - selectCustomSelect + isCheckboxSelected, + selectCustomSelect, + findParentElement }