@@ -478,6 +478,92 @@ defmodule M51.MatrixClient.PollerTest do
478
478
)
479
479
end
480
480
481
+ test "re-joined room" do
482
+ state_events = [
483
+ % {
484
+ "content" => % { "alias" => "#test:example.org" } ,
485
+ "event_id" => "$event1" ,
486
+ "origin_server_ts" => 1_632_644_251_623 ,
487
+ "sender" => "@nick:example.org" ,
488
+ "state_key" => "" ,
489
+ "type" => "m.room.canonical_alias" ,
490
+ "unsigned" => % { }
491
+ } ,
492
+ % {
493
+ "content" => % { "avatar_url" => nil , "displayname" => "Name 2" , "membership" => "join" } ,
494
+ "event_id" => "$event2" ,
495
+ "origin_server_ts" => 1_632_648_797_438 ,
496
+ "sender" => "nick2:example.org" ,
497
+ "state_key" => "nick2:example.org" ,
498
+ "type" => "m.room.member" ,
499
+ "unsigned" => % { }
500
+ } ,
501
+ % {
502
+ "content" => % { "avatar_url" => nil , "displayname" => "My Name" , "membership" => "join" } ,
503
+ "event_id" => "$event3" ,
504
+ "origin_server_ts" => 1_632_648_797_438 ,
505
+ "sender" => "mynick:example.com" ,
506
+ "state_key" => "mynick:example.com" ,
507
+ "type" => "m.room.member" ,
508
+ "unsigned" => % { }
509
+ }
510
+ ]
511
+
512
+ timeline_events = [
513
+ % {
514
+ "content" => % { "membership" => "leave" } ,
515
+ "event_id" => "$event3" ,
516
+ "origin_server_ts" => 1_632_648_797_438 ,
517
+ "sender" => "mynick:example.com" ,
518
+ "state_key" => "mynick:example.com" ,
519
+ "type" => "m.room.member" ,
520
+ "unsigned" => % { }
521
+ } ,
522
+ % {
523
+ "content" => % { "avatar_url" => nil , "displayname" => "My Name" , "membership" => "join" } ,
524
+ "event_id" => "$event3" ,
525
+ "origin_server_ts" => 1_632_648_797_438 ,
526
+ "sender" => "mynick:example.com" ,
527
+ "state_key" => "mynick:example.com" ,
528
+ "type" => "m.room.member" ,
529
+ "unsigned" => % { }
530
+ }
531
+ ]
532
+
533
+ M51.MatrixClient.Poller . handle_events ( self ( ) , % {
534
+ "rooms" => % {
535
+ "join" => % {
536
+ "!testid:example.org" => % {
537
+ "state" => % { "events" => state_events } ,
538
+ "timeline" => % { "events" => timeline_events }
539
+ }
540
+ }
541
+ }
542
+ } )
543
+
544
+ # first welcome
545
+ assert_line ( ":mynick:[email protected] JOIN :#test:example.org\r \n " )
546
+ assert_line ( ":server. 331 mynick:example.com :#test:example.org\r \n " )
547
+
548
+ assert_line (
549
+ ":server. 353 mynick:example.com = #test:example.org :mynick:example.com nick2:example.org\r \n "
550
+ )
551
+
552
+ assert_line ( ":server. 366 mynick:example.com #test:example.org :End of /NAMES list\r \n " )
553
+
554
+ assert_line ( ":mynick:[email protected] PART :#test:example.org\r \n " )
555
+
556
+ # second welcome
557
+ assert_line ( ":mynick:[email protected] JOIN :#test:example.org\r \n " )
558
+ assert_line ( ":server. 331 mynick:example.com :#test:example.org\r \n " )
559
+
560
+ assert_line (
561
+ ":server. 353 mynick:example.com = #test:example.org :mynick:example.com nick2:example.org\r \n "
562
+ )
563
+
564
+ assert_line ( ":server. 366 mynick:example.com #test:example.org :End of /NAMES list\r \n " )
565
+ end
566
+
481
567
test "room name suppression" do
482
568
M51.IrcConn.State . add_capabilities ( :process_ircconn_state , [
483
569
:channel_rename ,
@@ -725,6 +811,14 @@ defmodule M51.MatrixClient.PollerTest do
725
811
"@msgid=$event7 :mynick:[email protected] JOIN :#test:example.com\r \n "
726
812
)
727
813
814
+ assert_line ( ":server. 331 mynick:example.com :#test:example.com\r \n " )
815
+
816
+ assert_line (
817
+ ":server. 353 mynick:example.com = #test:example.com :mynick:example.com nick2:example.com\r \n "
818
+ )
819
+
820
+ assert_line ( ":server. 366 mynick:example.com #test:example.com :End of /NAMES list\r \n " )
821
+
728
822
assert_line (
729
823
"@msgid=$event4 :mynick:[email protected] KICK #test:example.com nick2:example.com :I don't like you\r \n "
730
824
)
0 commit comments