Home Manual Reference Source

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

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

/**
 * ParticipantListPanel
 * @extends BasePage
 */
class ParticipantListPanel extends BasePage {
  /**
   * @param {*} browser Browser from controller
   */
  constructor(browser) {
    super(browser);
  }

  // PAGE ELEMENTS
  /* eslint-disable require-jsdoc, max-len */
  participantsCount() {
    return this.element(".iconsize-participant-list h6 span");
  }

  participantNames() {
    return this.elements(
      "[class*='components-InCall-InCallParticipantList-InCallParticipant__name']"
    );
  }

  // PAGE FUNCTIONS
  /**
   * Returns call participants info from right hand panel participants list
   * @return {Object} participants info
   */
  async getParticipantsInfo() {
    let participantNamesArray = []; // eslint-disable-line
    const participantCount = await this.participantsCount().getText();
    const participants = await this.participantNames().all();
    for (const each of participants) {
      participantNamesArray.push(await each.getText());
    }
    const participantInfo = {
      count: participantCount,
      names: participantNamesArray
    };
    return participantInfo;
  }
}

export default ParticipantListPanel;