Update end-to-end tests for new room list
parent
121e41d20b
commit
f12d951209
|
@ -15,10 +15,12 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
const {findSublist} = require("./create-room");
|
||||||
|
|
||||||
module.exports = async function acceptInvite(session, name) {
|
module.exports = async function acceptInvite(session, name) {
|
||||||
session.log.step(`accepts "${name}" invite`);
|
session.log.step(`accepts "${name}" invite`);
|
||||||
//TODO: brittle selector
|
const inviteSublist = await findSublist("invites");
|
||||||
const invitesHandles = await session.queryAll('.mx_RoomTile_name.mx_RoomTile_invite');
|
const invitesHandles = await inviteSublist.$(".mx_RoomTile2_name");
|
||||||
const invitesWithText = await Promise.all(invitesHandles.map(async (inviteHandle) => {
|
const invitesWithText = await Promise.all(invitesHandles.map(async (inviteHandle) => {
|
||||||
const text = await session.innerText(inviteHandle);
|
const text = await session.innerText(inviteHandle);
|
||||||
return {inviteHandle, text};
|
return {inviteHandle, text};
|
||||||
|
|
|
@ -16,21 +16,27 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
async function openRoomDirectory(session) {
|
async function openRoomDirectory(session) {
|
||||||
const roomDirectoryButton = await session.query('.mx_LeftPanel_explore .mx_AccessibleButton');
|
const roomDirectoryButton = await session.query('.mx_LeftPanel2_exploreButton');
|
||||||
await roomDirectoryButton.click();
|
await roomDirectoryButton.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function findSublist(name) {
|
||||||
|
const sublists = await session.queryAll('.mx_RoomSublist2');
|
||||||
|
for (const sublist of sublists) {
|
||||||
|
const header = await sublist.$('.mx_RoomSublist2_headerText');
|
||||||
|
const headerText = await session.innerText(header);
|
||||||
|
if (headerText.toLowerCase().includes(name.toLowerCase())) {
|
||||||
|
return sublist;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new Error(`could not find room list section that contains '${name}' in header`);
|
||||||
|
}
|
||||||
|
|
||||||
async function createRoom(session, roomName, encrypted=false) {
|
async function createRoom(session, roomName, encrypted=false) {
|
||||||
session.log.step(`creates room "${roomName}"`);
|
session.log.step(`creates room "${roomName}"`);
|
||||||
|
|
||||||
const roomListHeaders = await session.queryAll('.mx_RoomSubList_labelContainer');
|
const roomsSublist = await findSublist("rooms");
|
||||||
const roomListHeaderLabels = await Promise.all(roomListHeaders.map(h => session.innerText(h)));
|
const addRoomButton = await roomsSublist.$(".mx_RoomSublist2_auxButton");
|
||||||
const roomsIndex = roomListHeaderLabels.findIndex(l => l.toLowerCase().includes("rooms"));
|
|
||||||
if (roomsIndex === -1) {
|
|
||||||
throw new Error("could not find room list section that contains 'rooms' in header");
|
|
||||||
}
|
|
||||||
const roomsHeader = roomListHeaders[roomsIndex];
|
|
||||||
const addRoomButton = await roomsHeader.$(".mx_RoomSubList_addRoom");
|
|
||||||
await addRoomButton.click();
|
await addRoomButton.click();
|
||||||
|
|
||||||
const roomNameInput = await session.query('.mx_CreateRoomDialog_name input');
|
const roomNameInput = await session.query('.mx_CreateRoomDialog_name input');
|
||||||
|
@ -51,14 +57,8 @@ async function createRoom(session, roomName, encrypted=false) {
|
||||||
async function createDm(session, invitees) {
|
async function createDm(session, invitees) {
|
||||||
session.log.step(`creates DM with ${JSON.stringify(invitees)}`);
|
session.log.step(`creates DM with ${JSON.stringify(invitees)}`);
|
||||||
|
|
||||||
const roomListHeaders = await session.queryAll('.mx_RoomSubList_labelContainer');
|
const dmsSublist = await findSublist("people");
|
||||||
const roomListHeaderLabels = await Promise.all(roomListHeaders.map(h => session.innerText(h)));
|
const startChatButton = await dmsSublist.$(".mx_RoomSublist2_auxButton");
|
||||||
const dmsIndex = roomListHeaderLabels.findIndex(l => l.toLowerCase().includes('direct messages'));
|
|
||||||
if (dmsIndex === -1) {
|
|
||||||
throw new Error("could not find room list section that contains 'direct messages' in header");
|
|
||||||
}
|
|
||||||
const dmsHeader = roomListHeaders[dmsIndex];
|
|
||||||
const startChatButton = await dmsHeader.$(".mx_RoomSubList_addRoom");
|
|
||||||
await startChatButton.click();
|
await startChatButton.click();
|
||||||
|
|
||||||
const inviteesEditor = await session.query('.mx_InviteDialog_editor textarea');
|
const inviteesEditor = await session.query('.mx_InviteDialog_editor textarea');
|
||||||
|
@ -83,4 +83,4 @@ async function createDm(session, invitees) {
|
||||||
session.log.done();
|
session.log.done();
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {openRoomDirectory, createRoom, createDm};
|
module.exports = {openRoomDirectory, findSublist, createRoom, createDm};
|
||||||
|
|
Loading…
Reference in New Issue