Home Manual Reference Source

src/page_objects/web/call/callDetails.panel.js

import BasePage from "../../base.page.js";

/** 
 * Call Details Panel
 * @extends BasePage
 */
class CallDetailsPanel extends BasePage {
  /**
   * @param {args} args Args from controller
   */
  constructor(args) {
    super(args);
  }

  // PAGE ELEMENTS
  /* eslint-disable require-jsdoc */
  meetingLink() {
    return this.element(
      "//span[contains(text(), 'Meeting link')]/../following-sibling::dd[1]"
    );
  }

  videoAddress() {
    return this.element(
      "//dl[contains(@class, 'components-Contacts-ContactDetails__contactDetails')]//span[contains(text(), 'Video address')][1]/../following-sibling::dd[1]"
    );
  }
  /* eslint-enable require-jsdoc */

  // PAGE FUNCTIONS

  /**
   * Parse the call details panel
   * @returns {Object} Object of meeting link and video address
   */
  async parseCallDetails() {
    const meetingLinkText = await this.meetingLink().getText();
    const videoAddressText = await this.videoAddress().getText();

    return {
      meetingLink: meetingLinkText,
      videoAddress: videoAddressText
    };
  }
}

export default CallDetailsPanel;