@@ -234,6 +234,52 @@ describe("Matrix-to-IRC message bridging", function() {
234234 } ) ;
235235 } ) ;
236236
237+ it ( "should bridge matrix replies to self as self-replies" , async ( ) => {
238+ // Trigger an original event
239+ await env . mockAppService . _trigger ( "type:m.room.message" , {
240+ content : {
241+ body : "This is the real message" ,
242+ msgtype : "m.text"
243+ } ,
244+ room_id : roomMapping . roomId ,
245+ sender : repliesUser . id ,
246+ event_id : "$original:bar.com" ,
247+ origin_server_ts : Date . now ( ) ,
248+ type : "m.room.message"
249+ } ) ;
250+ const p = env . ircMock . _whenClient ( roomMapping . server , repliesUser . nick , "say" ,
251+ ( client , channel , text ) => {
252+ expect ( client . nick ) . toEqual ( testUser . nick ) ;
253+ expect ( client . addr ) . toEqual ( roomMapping . server ) ;
254+ expect ( channel ) . toEqual ( roomMapping . channel ) ;
255+ expect ( text ) . toEqual ( `<${ repliesUser . nick } > This is the real message\nReply Text` ) ;
256+ }
257+ ) ;
258+ const formatted_body = constructHTMLReply (
259+ "This is the fake message" ,
260+ "@somedude:bar.com" ,
261+ "Reply text"
262+ ) ;
263+ await env . mockAppService . _trigger ( "type:m.room.message" , {
264+ content : {
265+ body : "> <@somedude:bar.com> This is the fake message\n\nReply Text" ,
266+ formatted_body,
267+ format : "org.matrix.custom.html" ,
268+ msgtype : "m.text" ,
269+ "m.relates_to" : {
270+ "m.in_reply_to" : {
271+ "event_id" : "$original:bar.com"
272+ }
273+ } ,
274+ } ,
275+ sender : repliesUser . id ,
276+ room_id : roomMapping . roomId ,
277+ origin_server_ts : Date . now ( ) ,
278+ type : "m.room.message"
279+ } ) ;
280+ await p ;
281+ } ) ;
282+
237283 it ( "should bridge rapid matrix replies as short replies" , async ( ) => {
238284 // Trigger an original event
239285 await env . mockAppService . _trigger ( "type:m.room.message" , {
0 commit comments