Home Manual Reference Source

src/page_objects/web/contacts/create/createMeeting.modal.js

import BaseContactFormPage from "./base.contactForm.js";

/** CreateMeetingModal
 * @extends BasePage
 */
class CreateMeetingModal extends BaseContactFormPage {
  /**
   * @param {args} args Args from controller
   */
  constructor(args) {
    super(args);
  }

  // PAGE ELEMENTS
  /* eslint-disable require-jsdoc */
  nameField() {
    return this.element('//label[contains(string(), "Name")]/../input');
  }

  moderatorField() {
    return this.element("input#moderator");
  }

  passcodeField() {
    return this.element("input[name=pin]");
  }

  descriptionField() {
    return this.element("textarea[name=meetingDescription]");
  }

  lecturerField() {
    return this.element("input#lecturer");
  }

  cancelButton() {
    return this.element("button=Cancel");
  }

  saveButton() {
    return this.element("button=Save");
  }

  closeModalX() {
    return this.element("button#closeModalButton");
  }
  /* eslint-enable require-jsdoc */

  // PAGE FUNCTIONS

  /**
   * Fill create form and save
   * @param {String} name Name of meeting
   */
  async fillFormAndSave(name) {
    await this.nameField().setValue(name);
    await this.browser.keys("Down arrow");
    await this.saveButton().click();
    await this.saveButton().waitForNotVisible();
  }
}

export default CreateMeetingModal;