From c03cb67aefb104e630e7b83ebda358bafc021894 Mon Sep 17 00:00:00 2001 From: Aaron Raimist Date: Mon, 10 Jan 2022 05:46:30 -0600 Subject: [PATCH] Disable "Publish this room" option in invite only rooms (#7441) --- .../room_settings/RoomPublishSetting.tsx | 7 ++- .../src/usecases/room-settings.ts | 44 +++++++++++-------- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/components/views/room_settings/RoomPublishSetting.tsx b/src/components/views/room_settings/RoomPublishSetting.tsx index 1cc83dea9e..19eab62a8a 100644 --- a/src/components/views/room_settings/RoomPublishSetting.tsx +++ b/src/components/views/room_settings/RoomPublishSetting.tsx @@ -68,9 +68,12 @@ export default class RoomPublishSetting extends React.PureComponent { @@ -64,8 +65,9 @@ async function findTabs(session: ElementSession): Promise { const tabButtons = await session.queryAll(".mx_RoomSettingsDialog .mx_TabbedView_tabLabel"); const tabLabels = await Promise.all(tabButtons.map(t => session.innerText(t))); const securityTabButton = tabButtons[tabLabels.findIndex(l => l.toLowerCase().includes("security"))]; + const generalTabButton = tabButtons[tabLabels.findIndex(l => l.toLowerCase().includes("general"))]; - return { securityTabButton }; + return { securityTabButton, generalTabButton }; } interface Settings { @@ -140,24 +142,7 @@ export async function checkRoomSettings(session: ElementSession, expectedSetting export async function changeRoomSettings(session, settings) { session.log.startGroup(`changes the room settings`); - const { securityTabButton } = await findTabs(session); - const generalSwitches = await session.queryAll(".mx_RoomSettingsDialog .mx_ToggleSwitch"); - const isDirectory = generalSwitches[0]; - - if (typeof settings.directory === "boolean") { - session.log.step(`sets directory listing to ${settings.directory}`); - await setSettingsToggle(session, isDirectory, settings.directory); - } - - if (settings.alias) { - session.log.step(`sets alias to ${settings.alias}`); - const aliasField = await session.query(".mx_RoomSettingsDialog .mx_AliasSettings details input[type=text]"); - await session.replaceInputText(aliasField, settings.alias.substring(1, settings.alias.lastIndexOf(":"))); - const addButton = await session.query(".mx_RoomSettingsDialog .mx_AliasSettings details .mx_AccessibleButton"); - await addButton.click(); - await session.delay(10); // delay to give time for the validator to run and check the alias - session.log.done(); - } + const { securityTabButton, generalTabButton } = await findTabs(session); securityTabButton.click(); await session.delay(500); @@ -186,6 +171,27 @@ export async function changeRoomSettings(session, settings) { } else { throw new Error(`unrecognized room visibility setting: ${settings.visibility}`); } + await session.delay(100); + session.log.done(); + } + + generalTabButton.click(); + await session.delay(500); + const generalSwitches = await session.queryAll(".mx_RoomSettingsDialog .mx_ToggleSwitch"); + const isDirectory = generalSwitches[0]; + + if (typeof settings.directory === "boolean") { + session.log.step(`sets directory listing to ${settings.directory}`); + await setSettingsToggle(session, isDirectory, settings.directory); + } + + if (settings.alias) { + session.log.step(`sets alias to ${settings.alias}`); + const aliasField = await session.query(".mx_RoomSettingsDialog .mx_AliasSettings details input[type=text]"); + await session.replaceInputText(aliasField, settings.alias.substring(1, settings.alias.lastIndexOf(":"))); + const addButton = await session.query(".mx_RoomSettingsDialog .mx_AliasSettings details .mx_AccessibleButton"); + await addButton.click(); + await session.delay(10); // delay to give time for the validator to run and check the alias session.log.done(); }