Skip to content

Commit 37e07ea

Browse files
committed
refactor(test): use the matrix mock server in test_notification_client_with_context
1 parent e4e3ff6 commit 37e07ea

File tree

1 file changed

+22
-44
lines changed

1 file changed

+22
-44
lines changed

crates/matrix-sdk-ui/tests/integration/notification_client.rs

Lines changed: 22 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use std::{
22
collections::BTreeMap,
33
sync::{Arc, Mutex},
4-
time::Duration,
54
};
65

76
use assert_matches::assert_matches;
@@ -40,78 +39,57 @@ use crate::{
4039

4140
#[async_test]
4241
async fn test_notification_client_with_context() {
43-
let room_id = room_id!("!a98sd12bjh:example.org");
44-
let (client, server) = logged_in_client_with_server().await;
42+
let server = MatrixMockServer::new().await;
43+
let client = server.client_builder().build().await;
4544

46-
let sync_settings = SyncSettings::new().timeout(Duration::from_millis(3000));
45+
let sender = user_id!("@user:example.org");
46+
let room_id = room_id!("!a98sd12bjh:example.org");
47+
let f = EventFactory::new().room(room_id).sender(sender);
4748

4849
let content = "Hello world!";
4950
let event_id = event_id!("$example_event_id");
50-
let server_ts = 152049794;
51-
let sender = user_id!("@user:example.org");
51+
let event = f.text_msg(content).event_id(event_id).server_ts(152049794).into_event();
52+
5253
let sender_display_name = "John Mastodon";
5354
let sender_avatar_url = mxc_uri!("mxc://example.org/avatar");
54-
let event_factory = EventFactory::new().room(room_id).sender(sender);
55-
let event_json =
56-
event_factory.text_msg(content).event_id(event_id).server_ts(server_ts).into_raw_sync();
57-
58-
let sender_member_event = event_factory
55+
let sender_member_event = f
5956
.member(sender)
6057
.membership(MembershipState::Join)
6158
.display_name(sender_display_name)
6259
.avatar_url(sender_avatar_url)
6360
.into_raw_timeline();
6461

65-
let mut sync_builder = SyncResponseBuilder::new();
66-
sync_builder.add_joined_room(
67-
JoinedRoomBuilder::new(room_id).add_timeline_event(
68-
event_factory
69-
.text_msg(content)
70-
.event_id(event_id)
71-
.server_ts(server_ts)
72-
.sender(sender)
73-
.into_raw_sync(),
74-
),
75-
);
76-
7762
// First, mock a sync that contains a text message.
78-
mock_sync(&server, sync_builder.build_json_sync_response(), None).await;
79-
let _response = client.sync_once(sync_settings.clone()).await.unwrap();
80-
server.reset().await;
63+
server
64+
.sync_room(&client, JoinedRoomBuilder::new(room_id).add_timeline_event(event.raw().clone()))
65+
.await;
8166

8267
// Then, try to simulate receiving a notification for that message.
8368
let dummy_sync_service = Arc::new(SyncService::builder(client.clone()).build().await.unwrap());
8469
let process_setup =
8570
NotificationProcessSetup::SingleProcess { sync_service: dummy_sync_service };
8671
let notification_client = NotificationClient::new(client, process_setup).await.unwrap();
8772

88-
{
89-
// The notification client retrieves the event via `/rooms/*/context/`.
90-
Mock::given(method("GET"))
91-
.and(path(format!("/_matrix/client/r0/rooms/{room_id}/context/{event_id}")))
92-
.and(header("authorization", "Bearer 1234"))
93-
.respond_with(ResponseTemplate::new(200).set_body_json(json!({
94-
"event": event_json,
95-
"state": [sender_member_event]
96-
})))
97-
.mount(&server)
98-
.await;
73+
// The notification client retrieves the event via `/rooms/*/context/`.
74+
server
75+
.mock_room_event_context()
76+
.ok(event, "", "", vec![sender_member_event.cast_unchecked()])
77+
.mock_once()
78+
.mount()
79+
.await;
9980

100-
// The encryption state is also fetched to figure whether the room is encrypted
101-
// or not.
102-
mock_encryption_state(&server, false).await;
103-
}
81+
// The encryption state is also fetched to figure whether the room is encrypted
82+
// or not.
83+
server.mock_room_state_encryption().plain().mount().await;
10484

10585
let item = notification_client.get_notification_with_context(room_id, event_id).await.unwrap();
10686

107-
server.reset().await;
108-
10987
assert_let!(NotificationStatus::Event(item) = item);
11088

11189
assert_matches!(item.event, NotificationEvent::Timeline(event) => {
11290
assert_eq!(event.event_type(), TimelineEventType::RoomMessage);
11391
});
114-
assert_eq!(item.sender_display_name.as_deref(), Some("John Mastodon"));
92+
assert_eq!(item.sender_display_name.as_deref(), Some(sender_display_name));
11593
assert_eq!(item.sender_avatar_url, Some(sender_avatar_url.to_string()));
11694
}
11795

0 commit comments

Comments
 (0)