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;