Skip to content

Commit c32b326

Browse files
committed
test: add test for hidePinnedMessageBanner
1 parent fb95ec8 commit c32b326

2 files changed

Lines changed: 392 additions & 0 deletions

File tree

test/unit-tests/components/structures/RoomView-test.tsx

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ import { CallStore } from "../../../../src/stores/CallStore.ts";
7777
import MediaDeviceHandler, { MediaDeviceKindEnum } from "../../../../src/MediaDeviceHandler.ts";
7878
import Modal, { type ComponentProps } from "../../../../src/Modal.tsx";
7979
import ErrorDialog from "../../../../src/components/views/dialogs/ErrorDialog.tsx";
80+
import * as pinnedEventHooks from "../../../../src/hooks/usePinnedEvents";
8081

8182
// Used by group calls
8283
jest.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

Comments
 (0)