Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 1f2b14c

Browse files
committed
Add tests for appservice ephemeral notifications.
1 parent f8f3c4a commit 1f2b14c

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tests/handlers/test_appservice.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def setUp(self):
4040
hs.get_application_service_scheduler.return_value = self.mock_scheduler
4141
hs.get_clock.return_value = MockClock()
4242
self.handler = ApplicationServicesHandler(hs)
43+
self.event_source = hs.get_event_sources()
4344

4445
def test_notify_interested_services(self):
4546
interested_service = self._mkservice(is_interested=True)
@@ -252,6 +253,38 @@ async def get_3pe_protocol(service, unusedProtocol):
252253
},
253254
)
254255

256+
def test_notify_interested_services_ephemeral(self):
257+
interested_service = self._mkservice(is_interested=True)
258+
services = [interested_service]
259+
260+
self.mock_store.get_app_services.return_value = services
261+
self.mock_store.get_type_stream_id_for_appservice.return_value = make_awaitable(579)
262+
263+
event = Mock(event_id="event_1")
264+
self.event_source.sources.receipt.get_new_events_as.return_value = make_awaitable(([event], None))
265+
266+
self.handler.notify_interested_services_ephemeral("receipt_key", 580)
267+
self.mock_scheduler.submit_ephemeral_events_for_as.assert_called_once_with(
268+
interested_service, [event]
269+
)
270+
self.mock_store.set_type_stream_id_for_appservice.assert_called_once_with(
271+
interested_service, "read_receipt", 580,
272+
)
273+
274+
def test_notify_interested_services_ephemeral_out_of_order(self):
275+
interested_service = self._mkservice(is_interested=True)
276+
services = [interested_service]
277+
278+
self.mock_store.get_app_services.return_value = services
279+
self.mock_store.get_type_stream_id_for_appservice.return_value = make_awaitable(580)
280+
281+
event = Mock(event_id="event_1")
282+
self.event_source.sources.receipt.get_new_events_as.return_value = make_awaitable(([event], None))
283+
284+
self.handler.notify_interested_services_ephemeral("receipt_key", 579)
285+
self.mock_scheduler.submit_ephemeral_events_for_as.assert_not_called()
286+
self.mock_store.set_type_stream_id_for_appservice.assert_not_called()
287+
255288
def _mkservice(self, is_interested, protocols=None):
256289
service = Mock()
257290
service.is_interested.return_value = make_awaitable(is_interested)

0 commit comments

Comments
 (0)