src/page_objects/web/contacts/pages/meetings.page.js
import BaseContactsPage from "./base.contacts.page.js";
/**
* MeetingsPage
* @extends BaseContactsPage
*/
class MeetingsPage extends BaseContactsPage {
/**
* @param {args} args Args from controller
*/
constructor(args) {
super(args);
}
// PAGE ELEMENTS
/* eslint-disable require-jsdoc, max-len */
showMyMeetingsButton() {
return this.element("span=My Meetings");
}
showActiveButton() {
return this.element("span=Active");
}
createMeetingButton() {
return this.element("button=Create a Meeting");
}
pageHeaderIcon() {
return this.element("div.iconsize-header-icon i.icon-meeting");
}
/* eslint-enable require-jsdoc, max-len */
// PAGE FUNCTIONS
/**
* Use the nav panel to visit meetings page
*/
async visit() {
await this.navPanel.meetings().click();
await this.pageHeaderIcon().waitForVisible(30000);
}
/**
* Open create contact modal
*/
async openCreateMeetingModal() {
await this.createMeetingButton().click();
}
/**
* Click show 'All'
*/
async showAll() {
await this.showFilterOptions();
await this.showAllButton().click();
}
/**
* Click show 'My Meetings'
*/
async showMyMeetings() {
await this.showFilterOptions();
await this.showMyMeetingsButton().click();
}
/**
* Click show 'Active'
*/
async showActive() {
await this.showFilterOptions();
await this.showActiveButton().click();
}
}
export default MeetingsPage;