blob: 44412ebdf541b8c52e419a51ca2b0a9861a0e65a [file]
import { PageObject } from '../../../infra-sk/modules/page_object/page_object';
import { PageObjectElement } from '../../../infra-sk/modules/page_object/page_object_element';
/** A page object for the PaginationSk component. */
export class PaginationSkPO extends PageObject {
private get prevBtn(): PageObjectElement {
return this.bySelector('button.prev');
}
private get nextBtn(): PageObjectElement {
return this.bySelector('button.next');
}
private get skipBtn(): PageObjectElement {
return this.bySelector('button.skip');
}
private get counter(): PageObjectElement {
return this.bySelector('div.counter');
}
async clickPrevBtn() {
await this.prevBtn.click();
}
async clickNextBtn() {
await this.nextBtn.click();
}
async clickSkipBtn() {
await this.skipBtn.click();
}
async isPrevBtnDisabled() {
return this.prevBtn.hasAttribute('disabled');
}
async isNextBtnDisabled() {
return this.nextBtn.hasAttribute('disabled');
}
async isSkipBtnDisabled() {
return this.skipBtn.hasAttribute('disabled');
}
async getCurrentPage(): Promise<number> {
const counterText = await this.counter.innerText;
const prefix = 'page ';
if (!counterText.startsWith(prefix)) {
throw new Error(`expected counter to begin with "${prefix}", but was "${counterText}"`);
}
return parseInt(counterText.substring(prefix.length));
}
}