tests: use the new global account data methods a bit more

This commit is contained in:
Benjamin Bouvier
2025-08-21 12:55:56 +02:00
parent e6b1ffba99
commit ef20342ddf
8 changed files with 46 additions and 140 deletions
+6 -38
View File
@@ -1706,18 +1706,10 @@ mod tests {
let mut subscriber = client.subscribe_to_ignore_user_list_changes();
assert!(subscriber.next().now_or_never().is_none());
let f = EventFactory::new();
let mut sync_builder = SyncResponseBuilder::new();
let response = sync_builder
.add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom(
json!({
"content": {
"ignored_users": {
*BOB: {}
}
},
"type": "m.ignored_user_list",
}),
))
.add_global_account_data(f.ignored_user_list([(*BOB).into()]).into_raw())
.build_sync_response();
client.receive_sync_response(response).await.unwrap();
@@ -1726,16 +1718,7 @@ mod tests {
// Receive the same response.
let response = sync_builder
.add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom(
json!({
"content": {
"ignored_users": {
*BOB: {}
}
},
"type": "m.ignored_user_list",
}),
))
.add_global_account_data(f.ignored_user_list([(*BOB).into()]).into_raw())
.build_sync_response();
client.receive_sync_response(response).await.unwrap();
@@ -1744,14 +1727,7 @@ mod tests {
// Now remove Bob from the ignored list.
let response = sync_builder
.add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom(
json!({
"content": {
"ignored_users": {}
},
"type": "m.ignored_user_list",
}),
))
.add_global_account_data(f.ignored_user_list([]).into_raw())
.build_sync_response();
client.receive_sync_response(response).await.unwrap();
@@ -1765,17 +1741,9 @@ mod tests {
let client = logged_in_base_client(None).await;
let mut sync_builder = SyncResponseBuilder::new();
let f = EventFactory::new();
let response = sync_builder
.add_global_account_data_event(matrix_sdk_test::GlobalAccountDataTestEvent::Custom(
json!({
"content": {
"ignored_users": {
ignored_user_id: {}
}
},
"type": "m.ignored_user_list",
}),
))
.add_global_account_data(f.ignored_user_list([ignored_user_id.to_owned()]).into_raw())
.build_sync_response();
client.receive_sync_response(response).await.unwrap();
@@ -24,8 +24,8 @@ use matrix_sdk::{
};
use matrix_sdk_common::executor::spawn;
use matrix_sdk_test::{
ALICE, BOB, GlobalAccountDataTestEvent, JoinedRoomBuilder, SyncResponseBuilder, async_test,
event_factory::EventFactory, mocks::mock_encryption_state,
ALICE, BOB, JoinedRoomBuilder, SyncResponseBuilder, async_test, event_factory::EventFactory,
mocks::mock_encryption_state,
};
use matrix_sdk_ui::timeline::{RoomExt, TimelineDetails};
use ruma::{
@@ -36,7 +36,6 @@ use ruma::{
},
room_id, user_id,
};
use serde_json::json;
use stream_assert::assert_pending;
use crate::mock_sync;
@@ -237,14 +236,7 @@ async fn test_timeline_is_reset_when_a_user_is_ignored_or_unignored() {
assert_pending!(timeline_stream);
sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({
"content": {
"ignored_users": {
bob: {}
}
},
"type": "m.ignored_user_list",
})));
sync_builder.add_global_account_data(ev_factory.ignored_user_list([bob.to_owned()]).into_raw());
mock_sync(&server, sync_builder.build_json_sync_response(), None).await;
let _response = client.sync_once(sync_settings.clone()).await.unwrap();
+11 -23
View File
@@ -16,7 +16,9 @@ use matrix_sdk::{
use matrix_sdk_base::{sync::RoomUpdates, RoomState};
use matrix_sdk_common::executor::spawn;
use matrix_sdk_test::{
async_test, sync_state_event,
async_test,
event_factory::EventFactory,
sync_state_event,
test_json::{
self,
sync::{
@@ -26,7 +28,7 @@ use matrix_sdk_test::{
sync_events::PINNED_EVENTS,
TAG,
},
GlobalAccountDataTestEvent, JoinedRoomBuilder, SyncResponseBuilder, DEFAULT_TEST_ROOM_ID,
JoinedRoomBuilder, SyncResponseBuilder, DEFAULT_TEST_ROOM_ID,
};
use ruma::{
api::client::{
@@ -1295,28 +1297,14 @@ async fn test_dms_are_processed_in_any_sync_response() {
let room_id_2 = room_id!("!s:e.uk");
let joined_room_builder = JoinedRoomBuilder::new(room_id_1);
let f = EventFactory::new();
let mut sync_response_builder = SyncResponseBuilder::new();
sync_response_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(
json!({
"content": {
user_a_id: [
room_id_1
],
user_b_id: [
room_id_2
]
},
"type": "m.direct",
"event_id": "$757957878228ekrDs:localhost",
"origin_server_ts": 17195787,
"sender": "@example:localhost",
"state_key": "",
"type": "m.direct",
"unsigned": {
"age": 139298
}
}),
));
sync_response_builder.add_global_account_data(
f.direct()
.add_user(user_a_id.to_owned().into(), room_id_1)
.add_user(user_b_id.to_owned().into(), room_id_2)
.into_raw(),
);
sync_response_builder.add_joined_room(joined_room_builder);
let json_response = sync_response_builder.build_json_sync_response();
@@ -22,10 +22,7 @@ use matrix_sdk_base::event_cache::{
store::{EventCacheStore, MemoryStore},
Gap,
};
use matrix_sdk_test::{
async_test, event_factory::EventFactory, GlobalAccountDataTestEvent, JoinedRoomBuilder, ALICE,
BOB,
};
use matrix_sdk_test::{async_test, event_factory::EventFactory, JoinedRoomBuilder, ALICE, BOB};
use ruma::{
event_id,
events::{
@@ -36,7 +33,6 @@ use ruma::{
room_version_rules::RedactionRules,
user_id, EventId,
};
use serde_json::json;
use tokio::{spawn, sync::broadcast, time::sleep};
mod threads;
@@ -163,14 +159,8 @@ async fn test_ignored_unignored() {
server
.mock_sync()
.ok_and_run(&client, |sync_builder| {
sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({
"content": {
"ignored_users": {
dexter: {}
}
},
"type": "m.ignored_user_list",
})));
sync_builder
.add_global_account_data(f.ignored_user_list([dexter.to_owned()]).into_raw());
})
.await;
@@ -14,9 +14,7 @@ use matrix_sdk::{
},
Client, ThreadingSupport,
};
use matrix_sdk_test::{
async_test, event_factory::EventFactory, GlobalAccountDataTestEvent, JoinedRoomBuilder, ALICE,
};
use matrix_sdk_test::{async_test, event_factory::EventFactory, JoinedRoomBuilder, ALICE};
use ruma::{
event_id,
events::{AnySyncTimelineEvent, Mentions},
@@ -25,7 +23,6 @@ use ruma::{
serde::Raw,
user_id, OwnedEventId, OwnedRoomId,
};
use serde_json::json;
use tokio::sync::broadcast;
/// Small helper for backpagination tests, to wait for initial events to
@@ -168,14 +165,8 @@ async fn test_ignored_user_empties_threads() {
server
.mock_sync()
.ok_and_run(&client, |sync_builder| {
sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({
"content": {
"ignored_users": {
dexter: {}
}
},
"type": "m.ignored_user_list",
})));
sync_builder
.add_global_account_data(f.ignored_user_list([dexter.to_owned()]).into_raw());
})
.await;
@@ -506,12 +497,7 @@ async fn thread_subscription_test_setup() -> ThreadSubscriptionTestSetup {
.mock_sync()
.ok_and_run(&client, |sync_builder| {
sync_builder.add_joined_room(JoinedRoomBuilder::new(room_id).add_state_event(member));
sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({
"type": "m.push_rules",
"content": {
"global": push_rules
}
})));
sync_builder.add_global_account_data(f.push_rules(push_rules).into_raw());
})
.await;
@@ -10,8 +10,8 @@ use matrix_sdk::{
};
use matrix_sdk_test::{
async_test, bulk_room_members, event_factory::EventFactory, sync_state_event, test_json,
GlobalAccountDataTestEvent, JoinedRoomBuilder, LeftRoomBuilder, StateTestEvent,
SyncResponseBuilder, BOB, DEFAULT_TEST_ROOM_ID,
JoinedRoomBuilder, LeftRoomBuilder, StateTestEvent, SyncResponseBuilder, BOB,
DEFAULT_TEST_ROOM_ID,
};
use ruma::{
event_id,
@@ -807,10 +807,10 @@ async fn test_is_direct() {
room.set_is_direct(true).await.unwrap();
// Mock the sync response we should get from the homeserver.
sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({
"type": "m.direct",
"content": direct_content,
})));
let f = EventFactory::new();
sync_builder.add_global_account_data(
f.direct().add_user((*BOB).to_owned().into(), *DEFAULT_TEST_ROOM_ID).into_raw(),
);
mock_sync(&server, sync_builder.build_json_sync_response(), None).await;
let _response = client.sync_once(sync_settings.clone()).await.unwrap();
server.reset().await;
@@ -835,10 +835,7 @@ async fn test_is_direct() {
.await;
// Mock the sync response we should get from the homeserver.
sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({
"type": "m.direct",
"content": direct_content,
})));
sync_builder.add_global_account_data(f.direct().into_raw());
mock_sync(&server, sync_builder.build_json_sync_response(), None).await;
let _response = client.sync_once(sync_settings.clone()).await.unwrap();
server.reset().await;
@@ -1036,22 +1036,12 @@ async fn test_reset_power_levels() {
async fn test_is_direct_invite_by_3pid() {
let (client, server) = logged_in_client_with_server().await;
let f = EventFactory::new();
let mut sync_builder = SyncResponseBuilder::new();
sync_builder.add_joined_room(JoinedRoomBuilder::default());
let data = json!({
"content": {
"invited@localhost.com": [*DEFAULT_TEST_ROOM_ID],
},
"event_id": "$757957878228ekrDs:localhost",
"origin_server_ts": 17195787,
"sender": "@example:localhost",
"state_key": "",
"type": "m.direct",
"unsigned": {
"age": 139298
}
});
sync_builder.add_global_account_data_bulk(vec![from_value(data).unwrap()]);
sync_builder.add_global_account_data(
f.direct().add_user("invited@localhost.com".into(), *DEFAULT_TEST_ROOM_ID).into_raw(),
);
mock_sync(&server, sync_builder.build_json_sync_response(), None).await;
mock_encryption_state(&server, false).await;
+8 -13
View File
@@ -261,18 +261,6 @@ where
.sender
.or_else(|| Some(self.unsigned.as_ref()?.redacted_because.as_ref()?.sender.clone()));
if sender.is_none() {
assert!(
self.is_ephemeral || self.is_global,
"the sender must be known when building the JSON for a non read-receipt event"
);
} else {
assert!(
!self.is_ephemeral && !self.is_global,
"event builder set is_ephemeral or is_global, but also has a sender field"
);
}
let mut json = json!({
"type": E::TYPE,
"content": self.content,
@@ -282,7 +270,14 @@ where
let map = json.as_object_mut().unwrap();
if let Some(sender) = sender {
map.insert("sender".to_owned(), json!(sender));
if !self.is_ephemeral && !self.is_global {
map.insert("sender".to_owned(), json!(sender));
}
} else {
assert!(
self.is_ephemeral || self.is_global,
"the sender must be known when building the JSON for a non read-receipt or global event"
);
}
let event_id = self