@@ -77,6 +77,7 @@ import { CallStore } from "../../../../src/stores/CallStore.ts";
7777import MediaDeviceHandler , { MediaDeviceKindEnum } from "../../../../src/MediaDeviceHandler.ts" ;
7878import Modal , { type ComponentProps } from "../../../../src/Modal.tsx" ;
7979import ErrorDialog from "../../../../src/components/views/dialogs/ErrorDialog.tsx" ;
80+ import * as pinnedEventHooks from "../../../../src/hooks/usePinnedEvents" ;
8081
8182// Used by group calls
8283jest . spyOn ( MediaDeviceHandler , "getDevices" ) . mockResolvedValue ( {
@@ -298,6 +299,35 @@ describe("RoomView", () => {
298299 expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
299300 } ) ;
300301
302+ it ( "should hide the pinned message banner when hidePinnedMessageBanner=true" , async ( ) => {
303+ // Join the room
304+ jest . spyOn ( room , "getMyMembership" ) . mockReturnValue ( KnownMembership . Join ) ;
305+
306+ const pinnedEvent = new MatrixEvent ( {
307+ type : EventType . RoomMessage ,
308+ sender : "@alice:example.org" ,
309+ content : {
310+ body : "First pinned message" ,
311+ msgtype : "m.text" ,
312+ } ,
313+ room_id : room . roomId ,
314+ origin_server_ts : 0 ,
315+ event_id : "$eventId" ,
316+ } ) ;
317+
318+ jest . spyOn ( pinnedEventHooks , "usePinnedEvents" ) . mockReturnValue ( [ pinnedEvent . getId ( ) ! ] ) ;
319+ jest . spyOn ( pinnedEventHooks , "useSortedFetchedPinnedEvents" ) . mockReturnValue ( [ pinnedEvent ] ) ;
320+
321+ const { asFragment, rerender } = await mountRoomView ( undefined ) ;
322+ // Check that the pinned message banner is rendered
323+ await expect ( screen . findByTestId ( "pinned-message-banner" ) ) . resolves . toBeTruthy ( ) ;
324+ // Now rerender with hidePinnedMessagesBanner=true
325+ rerender ( < RoomView threepidInvite = { undefined } forceTimeline = { false } hidePinnedMessageBanner = { true } /> ) ;
326+ // Check that the pinned message banner is not rendered
327+ await expect ( screen . findByTestId ( "pinned-message-banner" ) ) . rejects . toThrow ( ) ;
328+ expect ( asFragment ( ) ) . toMatchSnapshot ( ) ;
329+ } ) ;
330+
301331 describe ( "invites" , ( ) => {
302332 beforeEach ( ( ) => {
303333 const member = new RoomMember ( room . roomId , cli . getSafeUserId ( ) ) ;
0 commit comments