diff --git a/src/Notifier.ts b/src/Notifier.ts index 6323343871..23d239de0a 100644 --- a/src/Notifier.ts +++ b/src/Notifier.ts @@ -513,12 +513,7 @@ class NotifierClass extends TypedEventEmitter m.sender === cli.getUserId()); - if ( - EventType.CallNotify === ev.getType() && - SettingsStore.getValue("feature_group_calls") && - (ev.getAge() ?? 0) < 10000 && - !thisUserHasConnectedDevice - ) { + if (EventType.CallNotify === ev.getType() && (ev.getAge() ?? 0) < 10000 && !thisUserHasConnectedDevice) { const content = ev.getContent(); const roomId = ev.getRoomId(); if (typeof content.call_id !== "string") { diff --git a/src/components/structures/RoomView.tsx b/src/components/structures/RoomView.tsx index 37e45d6b8d..b56172be42 100644 --- a/src/components/structures/RoomView.tsx +++ b/src/components/structures/RoomView.tsx @@ -614,10 +614,7 @@ export class RoomView extends React.Component { }; private getMainSplitContentType = (room: Room): MainSplitContentType => { - if ( - (SettingsStore.getValue("feature_group_calls") && this.context.roomViewStore.isViewingCall()) || - isVideoRoom(room) - ) { + if (this.context.roomViewStore.isViewingCall() || isVideoRoom(room)) { return MainSplitContentType.Call; } if (this.context.widgetLayoutStore.hasMaximisedWidget(room)) { @@ -2183,10 +2180,7 @@ export class RoomView extends React.Component { } const myMembership = this.state.room.getMyMembership(); - if ( - isVideoRoom(this.state.room) && - !(SettingsStore.getValue("feature_video_rooms") && myMembership === KnownMembership.Join) - ) { + if (isVideoRoom(this.state.room) && myMembership !== KnownMembership.Join) { return (
diff --git a/src/components/views/context_menus/RoomContextMenu.tsx b/src/components/views/context_menus/RoomContextMenu.tsx index 694aba0ef5..f431218b06 100644 --- a/src/components/views/context_menus/RoomContextMenu.tsx +++ b/src/components/views/context_menus/RoomContextMenu.tsx @@ -42,7 +42,7 @@ import { shouldShowComponent } from "../../../customisations/helpers/UIComponent import { UIComponent } from "../../../settings/UIFeature"; import { DeveloperToolsOption } from "./DeveloperToolsOption"; import { tagRoom } from "../../../utils/room/tagRoom"; -import { useIsVideoRoom } from "../../../utils/video-rooms"; +import { isVideoRoom as calcIsVideoRoom } from "../../../utils/video-rooms"; import { usePinnedEvents } from "../../../hooks/usePinnedEvents"; interface IProps extends IContextMenuProps { @@ -105,7 +105,7 @@ const RoomContextMenu: React.FC = ({ room, onFinished, ...props }) => { } const isDm = DMRoomMap.shared().getUserIdForRoomId(room.roomId); - const isVideoRoom = useIsVideoRoom(room); + const isVideoRoom = calcIsVideoRoom(room); const canInvite = useEventEmitterState(cli, RoomMemberEvent.PowerLevel, () => room.canInvite(cli.getUserId()!)); let inviteOption: JSX.Element | undefined; if (canInvite && !isDm && shouldShowComponent(UIComponent.InviteUsers)) { diff --git a/src/components/views/right_panel/RightPanelTabs.tsx b/src/components/views/right_panel/RightPanelTabs.tsx index 07a423dd05..4873f707b2 100644 --- a/src/components/views/right_panel/RightPanelTabs.tsx +++ b/src/components/views/right_panel/RightPanelTabs.tsx @@ -20,7 +20,7 @@ import { Action } from "../../../dispatcher/actions"; import SettingsStore from "../../../settings/SettingsStore"; import { UIComponent, UIFeature } from "../../../settings/UIFeature"; import { shouldShowComponent } from "../../../customisations/helpers/UIComponents"; -import { useIsVideoRoom } from "../../../utils/video-rooms"; +import { isVideoRoom as calcIsVideoRoom } from "../../../utils/video-rooms"; function shouldShowTabsForPhase(phase?: RightPanelPhases): boolean { const tabs = [ @@ -48,7 +48,7 @@ export const RightPanelTabs: React.FC = ({ phase, room }): JSX.Element | } }); - const isVideoRoom = useIsVideoRoom(room); + const isVideoRoom = room !== undefined && calcIsVideoRoom(room); if (!shouldShowTabsForPhase(phase)) return null; diff --git a/src/components/views/right_panel/RoomSummaryCard.tsx b/src/components/views/right_panel/RoomSummaryCard.tsx index 39575d94f5..e67d38a2ed 100644 --- a/src/components/views/right_panel/RoomSummaryCard.tsx +++ b/src/components/views/right_panel/RoomSummaryCard.tsx @@ -70,7 +70,7 @@ import { useDispatcher } from "../../../hooks/useDispatcher"; import { Action } from "../../../dispatcher/actions"; import { Key } from "../../../Keyboard"; import { useTransition } from "../../../hooks/useTransition"; -import { useIsVideoRoom } from "../../../utils/video-rooms"; +import { isVideoRoom as calcIsVideoRoom } from "../../../utils/video-rooms"; import { usePinnedEvents } from "../../../hooks/usePinnedEvents"; import { ReleaseAnnouncement } from "../../structures/ReleaseAnnouncement.tsx"; @@ -219,7 +219,7 @@ const RoomSummaryCard: React.FC = ({ const isRoomEncrypted = useIsEncrypted(cli, room); const roomContext = useContext(RoomContext); const e2eStatus = roomContext.e2eStatus; - const isVideoRoom = useIsVideoRoom(room); + const isVideoRoom = calcIsVideoRoom(room); const roomState = useRoomState(room); const directRoomsList = useAccountData>(room.client, EventType.Direct); diff --git a/src/components/views/rooms/LegacyRoomHeader.tsx b/src/components/views/rooms/LegacyRoomHeader.tsx index 3464aef30d..0e4cd28aa8 100644 --- a/src/components/views/rooms/LegacyRoomHeader.tsx +++ b/src/components/views/rooms/LegacyRoomHeader.tsx @@ -251,8 +251,7 @@ const CallButtons: FC = ({ room }) => { const [busy, setBusy] = useState(false); const showButtons = useSettingValue("showCallButtonsInComposer"); const groupCallsEnabled = useFeatureEnabled("feature_group_calls"); - const videoRoomsEnabled = useFeatureEnabled("feature_video_rooms"); - const isVideoRoom = useMemo(() => videoRoomsEnabled && calcIsVideoRoom(room), [videoRoomsEnabled, room]); + const isVideoRoom = useMemo(() => calcIsVideoRoom(room), [room]); const useElementCallExclusively = useMemo(() => { return SdkConfig.get("element_call").use_exclusively; }, []); @@ -290,53 +289,13 @@ const CallButtons: FC = ({ room }) => { if (isVideoRoom || !showButtons) { return null; - } else if (groupCallsEnabled) { - if (useElementCallExclusively) { - if (hasGroupCall) { - return makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_ongoing_call"))); - } else if (mayCreateElementCalls) { - return makeVideoCallButton("element"); - } else { - return makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_no_perms_start_video_call"))); - } - } else if (hasLegacyCall || hasJitsiWidget) { - return ( - <> - {makeVoiceCallButton(new DisabledWithReason(_t("voip|disabled_ongoing_call")))} - {makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_ongoing_call")))} - - ); - } else if (functionalMembers.length <= 1) { - return ( - <> - {makeVoiceCallButton(new DisabledWithReason(_t("voip|disabled_no_one_here")))} - {makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_no_one_here")))} - - ); - } else if (functionalMembers.length === 2) { - return ( - <> - {makeVoiceCallButton("legacy_or_jitsi")} - {makeVideoCallButton("legacy_or_element")} - - ); - } else if (mayEditWidgets) { - return ( - <> - {makeVoiceCallButton("legacy_or_jitsi")} - {makeVideoCallButton(mayCreateElementCalls ? "jitsi_or_element" : "legacy_or_jitsi")} - - ); + } else if (groupCallsEnabled && useElementCallExclusively) { + if (hasGroupCall) { + return makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_ongoing_call"))); + } else if (mayCreateElementCalls) { + return makeVideoCallButton("element"); } else { - const videoCallBehavior = mayCreateElementCalls - ? "element" - : new DisabledWithReason(_t("voip|disabled_no_perms_start_video_call")); - return ( - <> - {makeVoiceCallButton(new DisabledWithReason(_t("voip|disabled_no_perms_start_voice_call")))} - {makeVideoCallButton(videoCallBehavior)} - - ); + return makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_no_perms_start_video_call"))); } } else if (hasLegacyCall || hasJitsiWidget) { return ( @@ -352,18 +311,31 @@ const CallButtons: FC = ({ room }) => { {makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_no_one_here")))} ); - } else if (functionalMembers.length === 2 || mayEditWidgets) { + } else if (functionalMembers.length === 2) { + return ( + <> + {makeVoiceCallButton("legacy_or_jitsi")} + {makeVideoCallButton(groupCallsEnabled ? "legacy_or_element" : "legacy_or_jitsi")} + + ); + } else if (mayEditWidgets) { return ( <> {makeVoiceCallButton("legacy_or_jitsi")} - {makeVideoCallButton("legacy_or_jitsi")} + {makeVideoCallButton( + groupCallsEnabled && mayCreateElementCalls ? "jitsi_or_element" : "legacy_or_jitsi", + )} ); } else { + const videoCallBehavior = + groupCallsEnabled && mayCreateElementCalls + ? "element" + : new DisabledWithReason(_t("voip|disabled_no_perms_start_video_call")); return ( <> {makeVoiceCallButton(new DisabledWithReason(_t("voip|disabled_no_perms_start_voice_call")))} - {makeVideoCallButton(new DisabledWithReason(_t("voip|disabled_no_perms_start_video_call")))} + {makeVideoCallButton(videoCallBehavior)} ); } @@ -745,7 +717,7 @@ export default class RoomHeader extends React.Component { } public render(): React.ReactNode { - const isVideoRoom = SettingsStore.getValue("feature_video_rooms") && calcIsVideoRoom(this.props.room); + const isVideoRoom = calcIsVideoRoom(this.props.room); let roomAvatar: JSX.Element | null = null; if (this.props.room) { diff --git a/src/components/views/rooms/RoomHeader.tsx b/src/components/views/rooms/RoomHeader.tsx index fae9e264ae..6e04a60601 100644 --- a/src/components/views/rooms/RoomHeader.tsx +++ b/src/components/views/rooms/RoomHeader.tsx @@ -42,7 +42,7 @@ import RightPanelStore from "../../../stores/right-panel/RightPanelStore"; import PosthogTrackers from "../../../PosthogTrackers"; import { VideoRoomChatButton } from "./RoomHeader/VideoRoomChatButton"; import { RoomKnocksBar } from "./RoomKnocksBar"; -import { useIsVideoRoom } from "../../../utils/video-rooms"; +import { isVideoRoom as calcIsVideoRoom } from "../../../utils/video-rooms"; import { notificationLevelToIndicator } from "../../../utils/notifications"; import { CallGuestLinkButton } from "./RoomHeader/CallGuestLinkButton"; import { ButtonEvent } from "../elements/AccessibleButton"; @@ -225,7 +225,7 @@ export default function RoomHeader({ } const roomContext = useContext(RoomContext); - const isVideoRoom = useIsVideoRoom(room); + const isVideoRoom = calcIsVideoRoom(room); const showChatButton = isVideoRoom || roomContext.mainSplitContentType === MainSplitContentType.MaximisedWidget || diff --git a/src/components/views/rooms/RoomInfoLine.tsx b/src/components/views/rooms/RoomInfoLine.tsx index c52b17cd91..5d570abb9a 100644 --- a/src/components/views/rooms/RoomInfoLine.tsx +++ b/src/components/views/rooms/RoomInfoLine.tsx @@ -17,7 +17,7 @@ import { useAsyncMemo } from "../../../hooks/useAsyncMemo"; import { useRoomState } from "../../../hooks/useRoomState"; import { useRoomMemberCount, useMyRoomMembership } from "../../../hooks/useRoomMembers"; import AccessibleButton from "../elements/AccessibleButton"; -import { useIsVideoRoom } from "../../../utils/video-rooms"; +import { isVideoRoom as calcIsVideoRoom } from "../../../utils/video-rooms"; interface IProps { room: Room; @@ -37,7 +37,7 @@ const RoomInfoLine: FC = ({ room }) => { const membership = useMyRoomMembership(room); const memberCount = useRoomMemberCount(room); - const isVideoRoom = useIsVideoRoom(room, true); + const isVideoRoom = calcIsVideoRoom(room); let iconClass: string; let roomType: string; diff --git a/src/components/views/rooms/RoomPreviewCard.tsx b/src/components/views/rooms/RoomPreviewCard.tsx index 9b926e6518..2c816e4743 100644 --- a/src/components/views/rooms/RoomPreviewCard.tsx +++ b/src/components/views/rooms/RoomPreviewCard.tsx @@ -17,7 +17,6 @@ import { UserTab } from "../dialogs/UserTab"; import { EffectiveMembership, getEffectiveMembership } from "../../../utils/membership"; import MatrixClientContext from "../../../contexts/MatrixClientContext"; import { useDispatcher } from "../../../hooks/useDispatcher"; -import { useFeatureEnabled } from "../../../hooks/useSettings"; import { useRoomState } from "../../../hooks/useRoomState"; import { useMyRoomMembership } from "../../../hooks/useRoomMembers"; import AccessibleButton from "../elements/AccessibleButton"; @@ -29,7 +28,7 @@ import RoomAvatar from "../avatars/RoomAvatar"; import MemberAvatar from "../avatars/MemberAvatar"; import { BetaPill } from "../beta/BetaCard"; import RoomInfoLine from "./RoomInfoLine"; -import { useIsVideoRoom } from "../../../utils/video-rooms"; +import { isVideoRoom as calcIsVideoRoom } from "../../../utils/video-rooms"; interface IProps { room: Room; @@ -43,8 +42,7 @@ interface IProps { // and viewing invite reasons to achieve parity with the default invite screen. const RoomPreviewCard: FC = ({ room, onJoinButtonClicked, onRejectButtonClicked }) => { const cli = useContext(MatrixClientContext); - const videoRoomsEnabled = useFeatureEnabled("feature_video_rooms"); - const isVideoRoom = useIsVideoRoom(room, true); + const isVideoRoom = calcIsVideoRoom(room); const myMembership = useMyRoomMembership(room); useDispatcher(defaultDispatcher, (payload) => { if (payload.action === Action.JoinRoomError && payload.roomId === room.roomId) { @@ -164,24 +162,6 @@ const RoomPreviewCard: FC = ({ room, onJoinButtonClicked, onRejectButton avatarRow = ; } - let notice: string | null = null; - if (cannotJoin) { - notice = _t("room|join_failed_needs_invite", { - roomName: room.name, - }); - } else if (isVideoRoom && !videoRoomsEnabled) { - notice = - myMembership === KnownMembership.Join - ? _t("room|view_failed_enable_video_rooms") - : _t("room|join_failed_enable_video_rooms"); - - joinButtons = ( - - {_t("room|show_labs_settings")} - - ); - } - return (
{inviterSection} @@ -192,7 +172,11 @@ const RoomPreviewCard: FC = ({ room, onJoinButtonClicked, onRejectButton {room.getJoinRule() === "public" && } - {notice ?
{notice}
: null} + {cannotJoin ? ( +
+ {_t("room|join_failed_needs_invite", { roomName: room.name })} +
+ ) : null}
{joinButtons}
); diff --git a/src/hooks/room/useRoomCall.ts b/src/hooks/room/useRoomCall.ts index 537f443750..adf16cc5cc 100644 --- a/src/hooks/room/useRoomCall.ts +++ b/src/hooks/room/useRoomCall.ts @@ -133,10 +133,10 @@ export const useRoomCall = ( if (useElementCallExclusively && !hasJitsiWidget) { return [PlatformCallType.ElementCall]; } - if (hasGroupCall && WidgetType.CALL.matches(groupCall.widget.type)) { - // only allow joining the ongoing Element call if there is one. - return [PlatformCallType.ElementCall]; - } + } + if (hasGroupCall && WidgetType.CALL.matches(groupCall.widget.type)) { + // only allow joining the ongoing Element call if there is one. + return [PlatformCallType.ElementCall]; } return options; }, [ diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 5a0b9d7cac..9b608c9ab3 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -2019,7 +2019,6 @@ "inviter_unknown": "Unknown", "invites_you_text": " invites you", "join_button_account": "Sign Up", - "join_failed_enable_video_rooms": "To join, please enable video rooms in Labs first", "join_failed_needs_invite": "To view %(roomName)s, you need an invite", "join_the_discussion": "Join the discussion", "join_title": "Join the room to participate", @@ -2088,7 +2087,6 @@ }, "this_room_button": "Search this room" }, - "show_labs_settings": "Show Labs settings", "status_bar": { "delete_all": "Delete all", "exceeded_resource_limit": "Your message wasn't sent because this homeserver has exceeded a resource limit. Please contact your service administrator to continue using the service.", @@ -2119,7 +2117,6 @@ }, "uploading_single_file": "Uploading %(filename)s" }, - "view_failed_enable_video_rooms": "To view, please enable video rooms in Labs first", "waiting_for_join_subtitle": "Once invited users have joined %(brand)s, you will be able to chat and the room will be end-to-end encrypted", "waiting_for_join_title": "Waiting for users to join %(brand)s" }, diff --git a/src/models/Call.ts b/src/models/Call.ts index 63859ae6f8..0238d15914 100644 --- a/src/models/Call.ts +++ b/src/models/Call.ts @@ -338,7 +338,7 @@ export class JitsiCall extends Call { public static get(room: Room): JitsiCall | null { // Only supported in video rooms - if (SettingsStore.getValue("feature_video_rooms") && room.isElementVideoRoom()) { + if (room.isElementVideoRoom()) { const apps = WidgetStore.instance.getApps(room.roomId); // The isVideoChannel field differentiates rich Jitsi calls from bare Jitsi widgets const jitsiWidget = apps.find((app) => WidgetType.JITSI.matches(app.type) && app.data?.isVideoChannel); @@ -805,33 +805,24 @@ export class ElementCall extends Call { } public static get(room: Room): ElementCall | null { - // Only supported in the new group call experience or in video rooms. - - if ( - SettingsStore.getValue("feature_group_calls") || - (SettingsStore.getValue("feature_video_rooms") && - SettingsStore.getValue("feature_element_call_video_rooms") && - room.isCallRoom()) - ) { - const apps = WidgetStore.instance.getApps(room.roomId); - const hasEcWidget = apps.some((app) => WidgetType.CALL.matches(app.type)); - const session = room.client.matrixRTC.getRoomSession(room); - - // A call is present if we - // - have a widget: This means the create function was called. - // - or there is a running session where we have not yet created a widget for. - // - or this is a call room. Then we also always want to show a call. - if (hasEcWidget || session.memberships.length !== 0 || room.isCallRoom()) { - // create a widget for the case we are joining a running call and don't have on yet. - const availableOrCreatedWidget = ElementCall.createOrGetCallWidget( - room.roomId, - room.client, - undefined, - undefined, - isVideoRoom(room), - ); - return new ElementCall(session, availableOrCreatedWidget, room.client); - } + const apps = WidgetStore.instance.getApps(room.roomId); + const hasEcWidget = apps.some((app) => WidgetType.CALL.matches(app.type)); + const session = room.client.matrixRTC.getRoomSession(room); + + // A call is present if we + // - have a widget: This means the create function was called. + // - or there is a running session where we have not yet created a widget for. + // - or this is a call room. Then we also always want to show a call. + if (hasEcWidget || session.memberships.length !== 0 || room.isCallRoom()) { + // create a widget for the case we are joining a running call and don't have on yet. + const availableOrCreatedWidget = ElementCall.createOrGetCallWidget( + room.roomId, + room.client, + undefined, + undefined, + isVideoRoom(room), + ); + return new ElementCall(session, availableOrCreatedWidget, room.client); } return null; diff --git a/src/utils/video-rooms.ts b/src/utils/video-rooms.ts index bb66747e3f..a0003d59d9 100644 --- a/src/utils/video-rooms.ts +++ b/src/utils/video-rooms.ts @@ -7,27 +7,8 @@ Please see LICENSE files in the repository root for full details. */ import type { Room } from "matrix-js-sdk/src/matrix"; -import SettingsStore from "../settings/SettingsStore"; -import { useFeatureEnabled } from "../hooks/useSettings"; - -function checkIsVideoRoom(room: Room, elementCallVideoRoomsEnabled: boolean): boolean { - return room.isElementVideoRoom() || (elementCallVideoRoomsEnabled && room.isCallRoom()); -} - -export const isVideoRoom = (room: Room): boolean => - checkIsVideoRoom(room, SettingsStore.getValue("feature_element_call_video_rooms")); /** - * Returns whether the given room is a video room based on the current feature flags. - * @param room The room to check. - * @param skipVideoRoomsEnabledCheck If true, the check for the video rooms feature flag is skipped, - * useful for suggesting to the user to enable the labs flag. + * Determines whether the given room is a video room. */ -export const useIsVideoRoom = (room?: Room, skipVideoRoomsEnabledCheck = false): boolean => { - const videoRoomsEnabled = useFeatureEnabled("feature_video_rooms"); - const elementCallVideoRoomsEnabled = useFeatureEnabled("feature_element_call_video_rooms"); // react to updates as isVideoRoom reads the value itself - - if (!room) return false; - if (!videoRoomsEnabled && !skipVideoRoomsEnabledCheck) return false; - return checkIsVideoRoom(room, elementCallVideoRoomsEnabled); -}; +export const isVideoRoom = (room: Room): boolean => room.isElementVideoRoom() || room.isCallRoom(); diff --git a/test/Notifier-test.ts b/test/Notifier-test.ts index e5b1a303e8..08a070104c 100644 --- a/test/Notifier-test.ts +++ b/test/Notifier-test.ts @@ -423,15 +423,7 @@ describe("Notifier", () => { return callEvent; }; - const setGroupCallsEnabled = (val: boolean) => { - jest.spyOn(SettingsStore, "getValue").mockImplementation((name: string) => { - if (name === "feature_group_calls") return val; - }); - }; - - it("should show toast when group calls are supported", () => { - setGroupCallsEnabled(true); - + it("shows group call toast", () => { const notifyEvent = emitCallNotifyEvent(); expect(ToastStore.sharedInstance().addOrReplaceToast).toHaveBeenCalledWith( @@ -445,16 +437,7 @@ describe("Notifier", () => { ); }); - it("should not show toast when group calls are not supported", () => { - setGroupCallsEnabled(false); - - emitCallNotifyEvent(); - - expect(ToastStore.sharedInstance().addOrReplaceToast).not.toHaveBeenCalled(); - }); - it("should not show toast when group call is already connected", () => { - setGroupCallsEnabled(true); const spyCallMemberships = jest.spyOn(MatrixRTCSession, "callMembershipsForRoom").mockReturnValue([ new CallMembership( mkEvent({ @@ -483,8 +466,6 @@ describe("Notifier", () => { }); it("should not show toast when calling with non-group call event", () => { - setGroupCallsEnabled(true); - emitCallNotifyEvent("event_type"); expect(ToastStore.sharedInstance().addOrReplaceToast).not.toHaveBeenCalled(); diff --git a/test/components/structures/MatrixChat-test.tsx b/test/components/structures/MatrixChat-test.tsx index 83b4feea3a..e786370b7c 100644 --- a/test/components/structures/MatrixChat-test.tsx +++ b/test/components/structures/MatrixChat-test.tsx @@ -1039,10 +1039,13 @@ describe("", () => { }); describe("when encryption is force disabled", () => { - const unencryptedRoom = new Room("!unencrypted:server.org", loginClient, userId); - const encryptedRoom = new Room("!encrypted:server.org", loginClient, userId); + let unencryptedRoom: Room; + let encryptedRoom: Room; beforeEach(() => { + unencryptedRoom = new Room("!unencrypted:server.org", loginClient, userId); + encryptedRoom = new Room("!encrypted:server.org", loginClient, userId); + loginClient.getClientWellKnown.mockReturnValue({ "io.element.e2ee": { force_disable: true, diff --git a/test/components/views/rooms/RoomPreviewCard-test.tsx b/test/components/views/rooms/RoomPreviewCard-test.tsx index 0a4fa3089f..4d7cf1d51e 100644 --- a/test/components/views/rooms/RoomPreviewCard-test.tsx +++ b/test/components/views/rooms/RoomPreviewCard-test.tsx @@ -83,21 +83,4 @@ describe("RoomPreviewCard", () => { await renderPreview(); expect(screen.queryByRole("button", { name: /beta/i })).toBeNull(); }); - - it("shows instructions on Jitsi video rooms invites if video rooms are disabled", async () => { - jest.spyOn(room, "getType").mockReturnValue(RoomType.ElementVideo); - jest.spyOn(room, "getMyMembership").mockReturnValue(KnownMembership.Invite); - - await renderPreview(); - screen.getByText(/enable video rooms in labs/i); - }); - - it("shows instructions on Element video rooms invites if video rooms are disabled", async () => { - jest.spyOn(room, "getType").mockReturnValue(RoomType.UnstableCall); - jest.spyOn(room, "getMyMembership").mockReturnValue(KnownMembership.Invite); - enabledFeatures = ["feature_element_call_video_rooms"]; - - await renderPreview(); - screen.getByText(/enable video rooms in labs/i); - }); });