bigbluebutton-Github/bigbluebutton-tests/playwright/breakout/join.js

145 lines
5.3 KiB
JavaScript
Raw Normal View History

const { Create } = require('./create');
2021-11-30 21:42:57 +08:00
const utilScreenShare = require('../screenshare/util');
const e = require('../core/elements');
const { ELEMENT_WAIT_LONGER_TIME } = require('../core/constants');
2022-06-08 02:52:22 +08:00
const { getSettings } = require('../core/settings');
2022-09-30 19:17:15 +08:00
const { expect } = require('@playwright/test');
2021-11-30 21:42:57 +08:00
class Join extends Create {
constructor(browser, context) {
super(browser, context);
}
async joinRoom(shouldJoinAudio = false) {
await this.userPage.bringToFront();
2021-11-30 21:42:57 +08:00
if (shouldJoinAudio) {
await this.userPage.waitAndClick(e.joinAudio);
await this.userPage.joinMicrophone();
2021-11-30 21:42:57 +08:00
}
await this.userPage.waitAndClick(e.breakoutRoomsItem);
await this.userPage.waitAndClick(e.joinRoom1);
await this.userPage.waitForSelector(e.alreadyConnected, ELEMENT_WAIT_LONGER_TIME);
2021-11-30 21:42:57 +08:00
const breakoutUserPage = await this.userPage.getLastTargetPage(this.context);
await breakoutUserPage.bringToFront();
2021-11-30 21:42:57 +08:00
if (shouldJoinAudio) {
await this.userPage.waitForSelector(e.joinAudio);
} else {
await breakoutUserPage.closeAudioModal();
}
2022-04-21 19:19:08 +08:00
await breakoutUserPage.waitForSelector(e.presentationTitle);
return breakoutUserPage;
2021-11-30 21:42:57 +08:00
}
async joinAndShareWebcam() {
const breakoutPage = await this.joinRoom();
2022-06-08 02:52:22 +08:00
const { videoPreviewTimeout } = getSettings();
2022-03-29 21:53:07 +08:00
await breakoutPage.shareWebcam(true, videoPreviewTimeout);
2021-11-30 21:42:57 +08:00
}
async joinAndShareScreen() {
const breakoutPage = await this.joinRoom();
await utilScreenShare.startScreenshare(breakoutPage);
}
async joinWithAudio() {
const breakoutUserPage = await this.joinRoom(true);
2021-11-30 21:42:57 +08:00
await breakoutUserPage.waitForSelector(e.talkingIndicator);
await breakoutUserPage.hasElement(e.isTalking);
2021-11-30 21:42:57 +08:00
}
2022-09-16 02:31:10 +08:00
async messageToAllRooms() {
const breakoutUserPage = await this.joinRoom();
await breakoutUserPage.hasElement(e.presentationTitle);
2022-09-16 02:31:10 +08:00
await this.modPage.waitAndClick(e.breakoutRoomsItem);
await this.modPage.type(e.chatBox, "test");
2022-09-16 02:31:10 +08:00
await this.modPage.waitAndClick(e.sendButton);
await breakoutUserPage.hasElement(e.chatUserMessageText);
}
async changeDurationTime() {
const breakoutUserPage = await this.joinRoom();
await breakoutUserPage.hasElement(e.presentationTitle);
2022-09-16 02:31:10 +08:00
await this.modPage.waitAndClick(e.breakoutRoomsItem);
await this.modPage.waitAndClick(e.breakoutOptionsMenu);
await this.modPage.waitAndClick(e.openBreakoutTimeManager);
await this.modPage.getLocator(e.inputSetTimeSelector).press('Backspace');
await this.modPage.type(e.inputSetTimeSelector, '2');
await this.modPage.waitAndClick(e.sendButtonDurationTime);
2022-10-06 04:41:22 +08:00
await this.modPage.hasText(e.breakoutRemainingTime, /[11-12]:[0-5][0-9]/);
2022-09-16 02:31:10 +08:00
2022-10-06 04:35:19 +08:00
await breakoutUserPage.hasText(e.timeRemaining, /[11-12]:[0-5][0-9]/);
2022-09-16 02:31:10 +08:00
}
async inviteUserAfterCreatingRooms() {
await this.modPage.waitAndClick(e.breakoutRoomsItem);
await this.modPage.waitAndClick(e.breakoutOptionsMenu);
await this.modPage.waitAndClick(e.openUpdateBreakoutUsersModal);
await this.modPage.dragDropSelector(e.userTest, e.breakoutBox1);
await this.modPage.hasText(e.breakoutBox1, /Attendee/);
await this.modPage.waitAndClick(e.modalConfirmButton);
await this.userPage.hasElement(e.modalConfirmButton);
await this.userPage.waitAndClick(e.modalDismissButton);
}
async usernameShowsBelowRoomsName() {
const breakoutUserPage = await this.joinRoom();
await this.modPage.waitAndClick(e.breakoutRoomsItem);
await this.modPage.hasText(e.userNameBreakoutRoom, /Attendee/);
}
async showBreakoutRoomTimeRemaining() {
const breakoutUserPage = await this.joinRoom();
await breakoutUserPage.hasElement(e.presentationTitle);
2022-09-16 02:31:10 +08:00
await this.modPage.waitAndClick(e.breakoutRoomsItem);
await this.modPage.waitAndClick(e.breakoutOptionsMenu);
await this.modPage.waitAndClick(e.openBreakoutTimeManager);
await this.modPage.getLocator(e.inputSetTimeSelector).press('Backspace');
await this.modPage.type(e.inputSetTimeSelector, '2');
await this.modPage.waitAndClick(e.sendButtonDurationTime);
2022-10-06 04:41:22 +08:00
await this.modPage.hasText(e.breakoutRemainingTime, /[11-12]:[0-5][0-9]/);
2022-09-16 02:31:10 +08:00
2022-10-06 04:35:19 +08:00
await breakoutUserPage.hasText(e.timeRemaining,/[11-12]:[0-5][0-9]/);
2022-09-16 02:31:10 +08:00
}
async endAllBreakoutRooms() {
await this.modPage.waitAndClick(e.breakoutRoomsItem);
await this.modPage.waitAndClick(e.breakoutOptionsMenu);
await this.modPage.waitAndClick(e.endAllBreakouts);
await this.modPage.wasRemoved(e.breakoutRoomsItem);
}
2022-09-30 19:17:15 +08:00
async moveUserToOtherRoom() {
const breakoutUserPage = await this.joinRoom();
await breakoutUserPage.hasElement(e.presentationTitle);
await this.modPage.waitAndClick(e.breakoutRoomsItem);
await this.modPage.hasText(e.userNameBreakoutRoom, /Attendee/);
await this.modPage.waitAndClick(e.breakoutOptionsMenu);
await this.modPage.waitAndClick(e.openUpdateBreakoutUsersModal);
await this.modPage.dragDropSelector(e.moveUser, e.breakoutBox2);
await this.modPage.waitAndClick(e.modalConfirmButton);
await this.userPage.waitForSelector(e.modalConfirmButton);
await expect(breakoutUserPage.page.isClosed(), "Previous breakout room page did not close!").toBeTruthy();
await this.userPage.waitAndClick(e.modalConfirmButton);
await this.modPage.hasText(e.userNameBreakoutRoom2, /Attendee/);
}
2021-11-30 21:42:57 +08:00
}
exports.Join = Join;