Home Manual Reference Source

src/page_objects/web/contacts/details/meetingDetails.panel.js

import BaseContactDetailsPanel from "./base.contactDetails.panel.js";

/** MeetingsDetailPanel 
 * @extends BaseContactDetailsPanel
 */
class MeetingsDetailPanel extends BaseContactDetailsPanel {
  /**
   * @param {args} args Args from controller
   */
  constructor(args) {
    super(args);
  }

  // PAGE ELEMENTS
  /* eslint-disable require-jsdoc */
  meetingDescription() {
    return this.element(
      "div[class^=components-Contacts-ContactCard__description]"
    );
  }

  meetingLink() {
    return this.element(
      "//span[contains(text(), 'Meeting link')]/../following-sibling::dd[1]"
    );
  }

  phone() {
    return this.element(
      "//span[contains(text(), 'Phone')]/../following-sibling::dd"
    );
  }

  owner() {
    return this.element(
      "//span[contains(text(), 'Owner')]/../following-sibling::dd"
    );
  }

  moderator() {
    return this.element(
      "//span[contains(text(), 'Moderator')]/../following-sibling::dd"
    );
  }

  lecturer() {
    return this.element(
      "//span[contains(text(), 'Lecturer')]/../following-sibling::dd"
    );
  }

  editButton() {
    return this.element("button=Edit");
  }

  deleteButton() {
    return this.element("button=Delete");
  }
  /* eslint-enable require-jsdoc */

  // PAGE FUNCTIONS

  /**
   * Get Details for meeting
   * @returns {Object} Object of meeting details
   */
  parseMeetingDetails() {
    const name = this.contactName().getText();
    const favorite = this.favoriteStar()
      .getAttribute("class")
      .match(/icon icon-favorite-outline/)
      ? false
      : true;
    const presence = this.presenceText()
      .getText()
      .toLowerCase();
    const meetingLink = this.meetingLink().getText();
    const phone = this.phone().getText();
    const videoAddress = this.videoAddress().getText();

    return {
      name: name,
      favorite: favorite,
      presence: presence,
      meetingLink: meetingLink,
      phone: phone,
      videoAddress: videoAddress
    };
  }
}

export default MeetingsDetailPanel;