From fe6a273ba947ae605d507d7f86382cead75660d4 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 29 Mar 2019 13:59:42 +0100 Subject: [PATCH] fix joining a room through the room directory --- src/scenarios/directory.js | 2 +- src/usecases/create-room.js | 10 ++++++++-- src/usecases/join.js | 10 ++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/scenarios/directory.js b/src/scenarios/directory.js index cfe72ccef3..582b6867b2 100644 --- a/src/scenarios/directory.js +++ b/src/scenarios/directory.js @@ -18,7 +18,7 @@ limitations under the License. const join = require('../usecases/join'); const sendMessage = require('../usecases/send-message'); const {receiveMessage} = require('../usecases/timeline'); -const createRoom = require('../usecases/create-room'); +const {createRoom} = require('../usecases/create-room'); const changeRoomSettings = require('../usecases/room-settings'); module.exports = async function roomDirectoryScenarios(alice, bob) { diff --git a/src/usecases/create-room.js b/src/usecases/create-room.js index 79f1848198..16d0620879 100644 --- a/src/usecases/create-room.js +++ b/src/usecases/create-room.js @@ -16,8 +16,7 @@ limitations under the License. const assert = require('assert'); -module.exports = async function createRoom(session, roomName) { - session.log.step(`creates room "${roomName}"`); +async function openRoomDirectory(session) { const roomListHeaders = await session.queryAll('.mx_RoomSubList_labelContainer'); const roomListHeaderLabels = await Promise.all(roomListHeaders.map(h => session.innerText(h))); const roomsIndex = roomListHeaderLabels.findIndex(l => l.toLowerCase().includes("rooms")); @@ -27,6 +26,11 @@ module.exports = async function createRoom(session, roomName) { const roomsHeader = roomListHeaders[roomsIndex]; const addRoomButton = await roomsHeader.$(".mx_RoomSubList_addRoom"); await addRoomButton.click(); +} + +async function createRoom(session, roomName) { + session.log.step(`creates room "${roomName}"`); + await openRoomDirectory(session); const createRoomButton = await session.waitAndQuery('.mx_RoomDirectory_createRoom'); await createRoomButton.click(); @@ -39,3 +43,5 @@ module.exports = async function createRoom(session, roomName) { await session.waitAndQuery('.mx_MessageComposer'); session.log.done(); } + +module.exports = {openRoomDirectory, createRoom}; diff --git a/src/usecases/join.js b/src/usecases/join.js index 76b98ca397..cba9e06660 100644 --- a/src/usecases/join.js +++ b/src/usecases/join.js @@ -15,14 +15,12 @@ limitations under the License. */ const assert = require('assert'); +const {openRoomDirectory} = require('./create-room'); module.exports = async function join(session, roomName) { session.log.step(`joins room "${roomName}"`); - //TODO: brittle selector - const directoryButton = await session.waitAndQuery('.mx_RoleButton[aria-label="Room directory"]'); - await directoryButton.click(); - - const roomInput = await session.waitAndQuery('.mx_DirectorySearchBox_input'); + await openRoomDirectory(session); + const roomInput = await session.waitAndQuery('.mx_DirectorySearchBox input'); await session.replaceInputText(roomInput, roomName); const firstRoomLabel = await session.waitAndQuery('.mx_RoomDirectory_table .mx_RoomDirectory_name:first-child', 1000); @@ -33,4 +31,4 @@ module.exports = async function join(session, roomName) { await session.waitAndQuery('.mx_MessageComposer'); session.log.done(); -} \ No newline at end of file +}