diff --git a/src/components/views/rooms/RoomKnocksBar.tsx b/src/components/views/rooms/RoomKnocksBar.tsx index 4928e3cf30c..f24db6ed2e9 100644 --- a/src/components/views/rooms/RoomKnocksBar.tsx +++ b/src/components/views/rooms/RoomKnocksBar.tsx @@ -112,7 +112,7 @@ export const RoomKnocksBar: VFC<{ room: Room }> = ({ room }) => { ); names = `${knockMembers[0].name} (${knockMembers[0].userId})`; - link = ( + link = knockMembers[0].events.member?.getContent().reason && ( { expect(screen.getByRole("paragraph")).toHaveTextContent(`${bob.name} (${bob.userId})`); }); - it("renders a link to open the room settings people tab", () => { - getComponent(room); - fireEvent.click(getButton("View message")); - expect(dis.dispatch).toHaveBeenCalledWith({ - action: "open_room_settings", - initial_tab_id: RoomSettingsTab.People, - room_id: roomId, + describe("when a knock reason is not provided", () => { + it("does not render a link to open the room settings people tab", () => { + getComponent(room); + expect(screen.queryByRole("button", { name: "View message" })).not.toBeInTheDocument(); + }); + }); + + describe("when a knock reason is provided", () => { + it("renders a link to open the room settings people tab", () => { + bob.setMembershipEvent( + new MatrixEvent({ + content: { displayname: "Bob", membership: "knock", reason: "some reason" }, + type: EventType.RoomMember, + }), + ); + getComponent(room); + fireEvent.click(getButton("View message")); + expect(dis.dispatch).toHaveBeenCalledWith({ + action: "open_room_settings", + initial_tab_id: RoomSettingsTab.People, + room_id: roomId, + }); }); });