16
16
from twisted .internet import defer
17
17
18
18
from synapse .api .constants import EduTypes , EventTypes
19
+ from synapse .api .errors import SynapseError
19
20
from synapse .events import EventBase
20
21
from synapse .federation .units import Transaction
21
22
from synapse .handlers .presence import UserPresenceState
22
23
from synapse .handlers .push_rules import InvalidRuleException
23
24
from synapse .rest import admin
24
- from synapse .rest .client import login , notifications , presence , profile , room
25
+ from synapse .rest .client import directory , login , notifications , presence , profile , room
25
26
from synapse .types import create_requester
26
27
27
28
from tests .events .test_presence_router import send_presence_update , sync_presence
@@ -40,6 +41,7 @@ class ModuleApiTestCase(HomeserverTestCase):
40
41
presence .register_servlets ,
41
42
profile .register_servlets ,
42
43
notifications .register_servlets ,
44
+ directory .register_servlets ,
43
45
]
44
46
45
47
def prepare (self , reactor , clock , homeserver ):
@@ -635,6 +637,30 @@ def test_check_push_rules_actions(self) -> None:
635
637
[{"set_tweak" : "sound" , "value" : "default" }]
636
638
)
637
639
640
+ def test_create_room (self ) -> None :
641
+ """Test that modules can create a room."""
642
+ # First test user existence verification.
643
+ self .get_failure (
644
+ self .module_api .create_room (
645
+ user_id = "@user:test" , config = {}, ratelimit = False
646
+ ),
647
+ SynapseError ,
648
+ )
649
+
650
+ # Now do the happy path.
651
+ user_id = self .register_user ("user" , "password" )
652
+
653
+ (result , _ ) = self .get_success (
654
+ self .module_api .create_room (user_id = user_id , config = {}, ratelimit = False )
655
+ )
656
+ room_id = result ["room_id" ]
657
+
658
+ channel = self .make_request (
659
+ "GET" ,
660
+ f"/_matrix/client/r0/directory/list/room/{ room_id } " ,
661
+ )
662
+ self .assertEqual (channel .code , 200 , channel .result )
663
+
638
664
639
665
class ModuleApiWorkerTestCase (BaseMultiWorkerStreamTestCase ):
640
666
"""For testing ModuleApi functionality in a multi-worker setup"""
0 commit comments