Home Manual Reference Source

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;