@@ -15,23 +15,29 @@ describe("shouldHideEvent", () => {
1515 let client : MatrixClient ;
1616 let publicRoom : Room ;
1717 let privateRoom : Room ;
18+ let inviteRoom : Room ;
1819
1920 beforeEach ( ( ) => {
2021 client = {
2122 getRoom : jest . fn ( ) . mockImplementation ( ( roomId : string ) => {
2223 if ( roomId === "!public:server" ) return publicRoom ;
2324 if ( roomId === "!private:server" ) return privateRoom ;
25+ if ( roomId === "!invite:server" ) return inviteRoom ;
2426 return null ;
2527 } ) ,
2628 } as unknown as MatrixClient ;
2729
2830 publicRoom = new SDKRoom ( "!public:server" , client , "@user:server" ) ;
2931 privateRoom = new SDKRoom ( "!private:server" , client , "@user:server" ) ;
32+ inviteRoom = new SDKRoom ( "!invite:server" , client , "@user:server" ) ;
3033
3134 ( publicRoom as unknown as { getJoinRule : jest . Mock } ) . getJoinRule = jest . fn ( ) . mockReturnValue ( JoinRule . Public ) ;
3235 ( privateRoom as unknown as { getJoinRule : jest . Mock } ) . getJoinRule = jest
3336 . fn ( )
3437 . mockReturnValue ( JoinRule . Private ) ;
38+ ( inviteRoom as unknown as { getJoinRule : jest . Mock } ) . getJoinRule = jest
39+ . fn ( )
40+ . mockReturnValue ( JoinRule . Invite ) ;
3541 } ) ;
3642
3743 function makeMemberEvent (
@@ -105,5 +111,97 @@ describe("shouldHideEvent", () => {
105111 const event = makeTopicEvent ( "!private:server" ) ;
106112 expect ( shouldHideEvent ( event , undefined , client ) ) . toBe ( false ) ;
107113 } ) ;
114+
115+ it ( "should show display name changes in private rooms" , ( ) => {
116+ const event = mkEvent ( {
117+ type : EventType . RoomMember ,
118+ room : "!private:server" ,
119+ user : "@user:server" ,
120+ content : {
121+ membership : KnownMembership . Join ,
122+ displayname : "New Name" ,
123+ avatar_url : "mxc://avatar" ,
124+ } ,
125+ prev_content : {
126+ membership : KnownMembership . Join ,
127+ displayname : "Old Name" ,
128+ avatar_url : "mxc://avatar" ,
129+ } ,
130+ event : true ,
131+ } ) ;
132+ expect ( shouldHideEvent ( event , undefined , client ) ) . toBe ( false ) ;
133+ } ) ;
134+
135+ it ( "should show avatar changes in private rooms" , ( ) => {
136+ const event = mkEvent ( {
137+ type : EventType . RoomMember ,
138+ room : "!private:server" ,
139+ user : "@user:server" ,
140+ content : {
141+ membership : KnownMembership . Join ,
142+ displayname : "User" ,
143+ avatar_url : "mxc://new_avatar" ,
144+ } ,
145+ prev_content : {
146+ membership : KnownMembership . Join ,
147+ displayname : "User" ,
148+ avatar_url : "mxc://old_avatar" ,
149+ } ,
150+ event : true ,
151+ } ) ;
152+ expect ( shouldHideEvent ( event , undefined , client ) ) . toBe ( false ) ;
153+ } ) ;
154+ } ) ;
155+
156+ describe ( "invite room events" , ( ) => {
157+ it ( "should hide member join events in invite-only rooms" , ( ) => {
158+ const event = makeMemberEvent ( "!invite:server" , KnownMembership . Join , KnownMembership . Invite ) ;
159+ expect ( shouldHideEvent ( event , undefined , client ) ) . toBe ( true ) ;
160+ } ) ;
161+
162+ it ( "should hide member leave events in invite-only rooms" , ( ) => {
163+ const event = makeMemberEvent ( "!invite:server" , KnownMembership . Leave , KnownMembership . Join ) ;
164+ expect ( shouldHideEvent ( event , undefined , client ) ) . toBe ( true ) ;
165+ } ) ;
166+
167+ it ( "should hide display name changes in invite-only rooms" , ( ) => {
168+ const event = mkEvent ( {
169+ type : EventType . RoomMember ,
170+ room : "!invite:server" ,
171+ user : "@user:server" ,
172+ content : {
173+ membership : KnownMembership . Join ,
174+ displayname : "New Name" ,
175+ avatar_url : "mxc://avatar" ,
176+ } ,
177+ prev_content : {
178+ membership : KnownMembership . Join ,
179+ displayname : "Old Name" ,
180+ avatar_url : "mxc://avatar" ,
181+ } ,
182+ event : true ,
183+ } ) ;
184+ expect ( shouldHideEvent ( event , undefined , client ) ) . toBe ( true ) ;
185+ } ) ;
186+
187+ it ( "should hide avatar changes in invite-only rooms" , ( ) => {
188+ const event = mkEvent ( {
189+ type : EventType . RoomMember ,
190+ room : "!invite:server" ,
191+ user : "@user:server" ,
192+ content : {
193+ membership : KnownMembership . Join ,
194+ displayname : "User" ,
195+ avatar_url : "mxc://new_avatar" ,
196+ } ,
197+ prev_content : {
198+ membership : KnownMembership . Join ,
199+ displayname : "User" ,
200+ avatar_url : "mxc://old_avatar" ,
201+ } ,
202+ event : true ,
203+ } ) ;
204+ expect ( shouldHideEvent ( event , undefined , client ) ) . toBe ( true ) ;
205+ } ) ;
108206 } ) ;
109207} ) ;
0 commit comments