@@ -2976,6 +2976,86 @@ def test_join_private_room_if_owner(self) -> None:
29762976 self .assertEqual (200 , channel .code , msg = channel .json_body )
29772977 self .assertEqual (private_room_id , channel .json_body ["joined_rooms" ][0 ])
29782978
2979+ def test_joined_rooms (self ) -> None :
2980+ """
2981+ Test joined_rooms admin endpoint.
2982+ """
2983+
2984+ channel = self .make_request (
2985+ "POST" ,
2986+ f"/_matrix/client/v3/join/{ self .public_room_id } " ,
2987+ content = {"user_id" : self .second_user_id },
2988+ access_token = self .second_tok ,
2989+ )
2990+
2991+ self .assertEqual (200 , channel .code , msg = channel .json_body )
2992+ self .assertEqual (self .public_room_id , channel .json_body ["room_id" ])
2993+
2994+ channel = self .make_request (
2995+ "GET" ,
2996+ f"/_synapse/admin/v1/users/{ self .second_user_id } /joined_rooms" ,
2997+ access_token = self .admin_user_tok ,
2998+ )
2999+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3000+ self .assertEqual (self .public_room_id , channel .json_body ["joined_rooms" ][0 ])
3001+
3002+ def test_memberships (self ) -> None :
3003+ """
3004+ Test user memberships admin endpoint.
3005+ """
3006+
3007+ channel = self .make_request (
3008+ "POST" ,
3009+ f"/_matrix/client/v3/join/{ self .public_room_id } " ,
3010+ content = {"user_id" : self .second_user_id },
3011+ access_token = self .second_tok ,
3012+ )
3013+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3014+
3015+ other_room_id = self .helper .create_room_as (
3016+ self .admin_user , tok = self .admin_user_tok
3017+ )
3018+
3019+ channel = self .make_request (
3020+ "POST" ,
3021+ f"/_matrix/client/v3/join/{ other_room_id } " ,
3022+ content = {"user_id" : self .second_user_id },
3023+ access_token = self .second_tok ,
3024+ )
3025+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3026+
3027+ channel = self .make_request (
3028+ "GET" ,
3029+ f"/_synapse/admin/v1/users/{ self .second_user_id } /memberships" ,
3030+ access_token = self .admin_user_tok ,
3031+ )
3032+
3033+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3034+ self .assertEqual (
3035+ {self .public_room_id : Membership .JOIN , other_room_id : Membership .JOIN },
3036+ channel .json_body ,
3037+ )
3038+
3039+ channel = self .make_request (
3040+ "POST" ,
3041+ f"/_matrix/client/v3/rooms/{ other_room_id } /leave" ,
3042+ content = {"user_id" : self .second_user_id },
3043+ access_token = self .second_tok ,
3044+ )
3045+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3046+
3047+ channel = self .make_request (
3048+ "GET" ,
3049+ f"/_synapse/admin/v1/users/{ self .second_user_id } /memberships" ,
3050+ access_token = self .admin_user_tok ,
3051+ )
3052+
3053+ self .assertEqual (200 , channel .code , msg = channel .json_body )
3054+ self .assertEqual (
3055+ {self .public_room_id : Membership .JOIN , other_room_id : Membership .LEAVE },
3056+ channel .json_body ,
3057+ )
3058+
29793059 def test_context_as_non_admin (self ) -> None :
29803060 """
29813061 Test that, without being admin, one cannot use the context admin API
0 commit comments