timeline: make use of the EventFactory in more tests
This commit is contained in:
@@ -229,7 +229,7 @@ async fn test_focused_timeline_reacts() {
|
||||
// to the $1 event.
|
||||
sync_response_builder.add_joined_room(JoinedRoomBuilder::new(room_id).add_timeline_bulk([
|
||||
// This event must be ignored.
|
||||
f.text_msg("this is a sync event").sender(*ALICE).into_raw_sync(),
|
||||
f.text_msg("this is a sync event").sender(*ALICE).into(),
|
||||
// This event must not be ignored.
|
||||
sync_timeline_event!({
|
||||
"content": {
|
||||
|
||||
@@ -18,7 +18,10 @@ use assert_matches::assert_matches;
|
||||
use assert_matches2::assert_let;
|
||||
use eyeball_im::VectorDiff;
|
||||
use futures_util::{pin_mut, StreamExt};
|
||||
use matrix_sdk::{config::SyncSettings, test_utils::logged_in_client_with_server};
|
||||
use matrix_sdk::{
|
||||
config::SyncSettings,
|
||||
test_utils::{events::EventFactory, logged_in_client_with_server},
|
||||
};
|
||||
use matrix_sdk_test::{
|
||||
async_test, sync_timeline_event, EventBuilder, GlobalAccountDataTestEvent, JoinedRoomBuilder,
|
||||
SyncResponseBuilder, ALICE, BOB,
|
||||
@@ -30,7 +33,7 @@ use ruma::{
|
||||
member::{MembershipState, RoomMemberEventContent},
|
||||
message::{MessageType, RoomMessageEventContent},
|
||||
},
|
||||
room_id,
|
||||
room_id, user_id,
|
||||
};
|
||||
use serde_json::json;
|
||||
use stream_assert::{assert_next_matches, assert_pending};
|
||||
@@ -210,45 +213,22 @@ async fn test_timeline_is_reset_when_a_user_is_ignored_or_unignored() {
|
||||
let (_, timeline_stream) = timeline.subscribe().await;
|
||||
pin_mut!(timeline_stream);
|
||||
|
||||
let alice = "@alice:example.org";
|
||||
let bob = "@bob:example.org";
|
||||
let alice = user_id!("@alice:example.org");
|
||||
let bob = user_id!("@bob:example.org");
|
||||
|
||||
let first_event_id = event_id!("$YTQwYl2pl1");
|
||||
let second_event_id = event_id!("$YTQwYl2pl2");
|
||||
let third_event_id = event_id!("$YTQwYl2pl3");
|
||||
|
||||
let mut ev_factory = EventFactory::new().room(room_id);
|
||||
|
||||
sync_builder.add_joined_room(
|
||||
JoinedRoomBuilder::new(room_id)
|
||||
.add_timeline_event(sync_timeline_event!({
|
||||
"content": {
|
||||
"body": "hello",
|
||||
"msgtype": "m.text",
|
||||
},
|
||||
"event_id": first_event_id,
|
||||
"origin_server_ts": 152037280,
|
||||
"sender": alice,
|
||||
"type": "m.room.message",
|
||||
}))
|
||||
.add_timeline_event(sync_timeline_event!({
|
||||
"content": {
|
||||
"body": "hello",
|
||||
"msgtype": "m.text",
|
||||
},
|
||||
"event_id": second_event_id,
|
||||
"origin_server_ts": 152037281,
|
||||
"sender": bob,
|
||||
"type": "m.room.message",
|
||||
}))
|
||||
.add_timeline_event(sync_timeline_event!({
|
||||
"content": {
|
||||
"body": "hello",
|
||||
"msgtype": "m.text",
|
||||
},
|
||||
"event_id": third_event_id,
|
||||
"origin_server_ts": 152037282,
|
||||
"sender": alice,
|
||||
"type": "m.room.message",
|
||||
})),
|
||||
.add_timeline_event(ev_factory.text_msg("hello").sender(alice).event_id(first_event_id))
|
||||
.add_timeline_event(ev_factory.text_msg("hello").sender(bob).event_id(second_event_id))
|
||||
.add_timeline_event(
|
||||
ev_factory.text_msg("hello").sender(alice).event_id(third_event_id),
|
||||
),
|
||||
);
|
||||
|
||||
mock_sync(&server, sync_builder.build_json_sync_response(), None).await;
|
||||
@@ -272,9 +252,6 @@ async fn test_timeline_is_reset_when_a_user_is_ignored_or_unignored() {
|
||||
});
|
||||
assert_pending!(timeline_stream);
|
||||
|
||||
let fourth_event_id = event_id!("$YTQwYl2pl4");
|
||||
let fiveth_event_id = event_id!("$YTQwYl2pl5");
|
||||
|
||||
sync_builder.add_global_account_data_event(GlobalAccountDataTestEvent::Custom(json!({
|
||||
"content": {
|
||||
"ignored_users": {
|
||||
@@ -292,28 +269,16 @@ async fn test_timeline_is_reset_when_a_user_is_ignored_or_unignored() {
|
||||
assert_next_matches!(timeline_stream, VectorDiff::Clear);
|
||||
assert_pending!(timeline_stream);
|
||||
|
||||
let fourth_event_id = event_id!("$YTQwYl2pl4");
|
||||
let fifth_event_id = event_id!("$YTQwYl2pl5");
|
||||
|
||||
// All the next events are sent by Alice now.
|
||||
ev_factory = ev_factory.sender(alice);
|
||||
|
||||
sync_builder.add_joined_room(
|
||||
JoinedRoomBuilder::new(room_id)
|
||||
.add_timeline_event(sync_timeline_event!({
|
||||
"content": {
|
||||
"body": "hello",
|
||||
"msgtype": "m.text",
|
||||
},
|
||||
"event_id": fourth_event_id,
|
||||
"origin_server_ts": 152037283,
|
||||
"sender": alice,
|
||||
"type": "m.room.message",
|
||||
}))
|
||||
.add_timeline_event(sync_timeline_event!({
|
||||
"content": {
|
||||
"body": "hello",
|
||||
"msgtype": "m.text",
|
||||
},
|
||||
"event_id": fiveth_event_id,
|
||||
"origin_server_ts": 152037284,
|
||||
"sender": alice,
|
||||
"type": "m.room.message",
|
||||
})),
|
||||
.add_timeline_event(ev_factory.text_msg("hello").event_id(fourth_event_id))
|
||||
.add_timeline_event(ev_factory.text_msg("hello").event_id(fifth_event_id)),
|
||||
);
|
||||
|
||||
mock_sync(&server, sync_builder.build_json_sync_response(), None).await;
|
||||
@@ -328,7 +293,7 @@ async fn test_timeline_is_reset_when_a_user_is_ignored_or_unignored() {
|
||||
assert_eq!(value.as_event().unwrap().event_id(), Some(fourth_event_id));
|
||||
});
|
||||
assert_next_matches!(timeline_stream, VectorDiff::PushBack { value } => {
|
||||
assert_eq!(value.as_event().unwrap().event_id(), Some(fiveth_event_id));
|
||||
assert_eq!(value.as_event().unwrap().event_id(), Some(fifth_event_id));
|
||||
});
|
||||
assert_next_matches!(timeline_stream, VectorDiff::PushFront { value } => {
|
||||
assert!(value.is_day_divider());
|
||||
|
||||
@@ -96,6 +96,15 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<E: EventContent> Into<Raw<AnySyncTimelineEvent>> for EventBuilder<E>
|
||||
where
|
||||
E::EventType: Serialize,
|
||||
{
|
||||
fn into(self) -> Raw<AnySyncTimelineEvent> {
|
||||
self.into_raw_sync()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct EventFactory {
|
||||
next_ts: AtomicU64,
|
||||
|
||||
@@ -3,12 +3,9 @@ use std::time::Duration;
|
||||
use assert_matches2::{assert_let, assert_matches};
|
||||
use matrix_sdk::{
|
||||
event_cache::{BackPaginationOutcome, EventCacheError, RoomEventCacheUpdate},
|
||||
test_utils::{assert_event_matches_msg, logged_in_client_with_server},
|
||||
};
|
||||
use matrix_sdk_common::deserialized_responses::SyncTimelineEvent;
|
||||
use matrix_sdk_test::{
|
||||
async_test, sync_timeline_event, EventBuilder, JoinedRoomBuilder, SyncResponseBuilder,
|
||||
test_utils::{assert_event_matches_msg, events::EventFactory, logged_in_client_with_server},
|
||||
};
|
||||
use matrix_sdk_test::{async_test, EventBuilder, JoinedRoomBuilder, SyncResponseBuilder};
|
||||
use ruma::{
|
||||
event_id,
|
||||
events::{room::message::RoomMessageEventContent, AnyTimelineEvent},
|
||||
@@ -80,21 +77,16 @@ async fn test_add_initial_events() {
|
||||
assert!(events.is_empty());
|
||||
assert!(subscriber.is_empty());
|
||||
|
||||
let ev_factory = EventFactory::new().sender(user_id!("@dexter:lab.org"));
|
||||
|
||||
// And after a sync, yielding updates to two rooms,
|
||||
sync_builder.add_joined_room(JoinedRoomBuilder::new(room_id).add_timeline_event(
|
||||
EventBuilder::new().make_sync_message_event(
|
||||
user_id!("@dexter:lab.org"),
|
||||
RoomMessageEventContent::text_plain("bonjour monde"),
|
||||
),
|
||||
));
|
||||
sync_builder.add_joined_room(
|
||||
JoinedRoomBuilder::new(room_id).add_timeline_event(ev_factory.text_msg("bonjour monde")),
|
||||
);
|
||||
|
||||
sync_builder.add_joined_room(
|
||||
JoinedRoomBuilder::new(room_id!("!parallel:universe.uk")).add_timeline_event(
|
||||
EventBuilder::new().make_sync_message_event(
|
||||
user_id!("@dexter:lab.org"),
|
||||
RoomMessageEventContent::text_plain("hi i'm learning French"),
|
||||
),
|
||||
),
|
||||
JoinedRoomBuilder::new(room_id!("!parallel:universe.uk"))
|
||||
.add_timeline_event(ev_factory.text_msg("hi i'm learning French")),
|
||||
);
|
||||
|
||||
let response_body = sync_builder.build_json_sync_response();
|
||||
@@ -120,17 +112,7 @@ async fn test_add_initial_events() {
|
||||
// smoke test for the event cache.
|
||||
client
|
||||
.event_cache()
|
||||
.add_initial_events(
|
||||
room_id,
|
||||
vec![SyncTimelineEvent::new(sync_timeline_event!({
|
||||
"sender": "@dexter:lab.org",
|
||||
"type": "m.room.message",
|
||||
"event_id": "$ida",
|
||||
"origin_server_ts": 12344446,
|
||||
"content": { "body":"new choice!", "msgtype": "m.text" },
|
||||
}))],
|
||||
None,
|
||||
)
|
||||
.add_initial_events(room_id, vec![ev_factory.text_msg("new choice!").into_sync()], None)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user