test(sdk): Add handle_live_redacted_message_event
This commit is contained in:
committed by
Jonas Platte
parent
e246735866
commit
13ffadc32a
@@ -9,7 +9,9 @@ use ruma::{
|
||||
relation::{Annotation, Replacement},
|
||||
room::{
|
||||
member::{MembershipState, RedactedRoomMemberEventContent, RoomMemberEventContent},
|
||||
message::{self, MessageType, RoomMessageEventContent},
|
||||
message::{
|
||||
self, MessageType, RedactedRoomMessageEventContent, RoomMessageEventContent,
|
||||
},
|
||||
name::RoomNameEventContent,
|
||||
topic::RedactedRoomTopicEventContent,
|
||||
},
|
||||
@@ -76,25 +78,8 @@ async fn edit_redacted() {
|
||||
let timeline = TestTimeline::new();
|
||||
let mut stream = timeline.stream();
|
||||
|
||||
// Ruma currently fails to serialize most redacted events correctly
|
||||
timeline
|
||||
.handle_live_custom_event(json!({
|
||||
"content": {},
|
||||
"event_id": "$eeG0HA0FAZ37wP8kXlNkxx3I",
|
||||
"origin_server_ts": 10,
|
||||
"sender": "@alice:example.org",
|
||||
"type": "m.room.message",
|
||||
"unsigned": {
|
||||
"redacted_because": {
|
||||
"content": {},
|
||||
"redacts": "$eeG0HA0FAZ37wP8kXlNkxx3K",
|
||||
"event_id": "$N6eUCBc3vu58PL8TobGaVQzM",
|
||||
"sender": "@alice:example.org",
|
||||
"origin_server_ts": 5,
|
||||
"type": "m.room.redaction",
|
||||
},
|
||||
},
|
||||
}))
|
||||
.handle_live_redacted_message_event(*ALICE, RedactedRoomMessageEventContent::new())
|
||||
.await;
|
||||
let _day_divider = assert_matches!(stream.next().await, Some(VecDiff::Push { value }) => value);
|
||||
let item = assert_matches!(stream.next().await, Some(VecDiff::Push { value }) => value);
|
||||
|
||||
@@ -27,7 +27,8 @@ use once_cell::sync::Lazy;
|
||||
use ruma::{
|
||||
events::{
|
||||
AnyMessageLikeEventContent, EmptyStateKey, MessageLikeEventContent,
|
||||
RedactedStateEventContent, StateEventContent, StaticStateEventContent,
|
||||
RedactedMessageLikeEventContent, RedactedStateEventContent, StateEventContent,
|
||||
StaticStateEventContent,
|
||||
},
|
||||
serde::Raw,
|
||||
server_name, user_id, EventId, MilliSecondsSinceUnixEpoch, OwnedTransactionId, TransactionId,
|
||||
@@ -88,6 +89,15 @@ impl TestTimeline {
|
||||
self.inner.handle_live_event(raw, None).await;
|
||||
}
|
||||
|
||||
async fn handle_live_redacted_message_event<C>(&self, sender: &UserId, content: C)
|
||||
where
|
||||
C: RedactedMessageLikeEventContent,
|
||||
{
|
||||
let ev = make_redacted_message_event(sender, content);
|
||||
let raw = Raw::new(&ev).unwrap().cast();
|
||||
self.inner.handle_live_event(raw, None).await;
|
||||
}
|
||||
|
||||
async fn handle_live_state_event<C>(&self, sender: &UserId, content: C, prev_content: Option<C>)
|
||||
where
|
||||
C: StaticStateEventContent<StateKey = EmptyStateKey>,
|
||||
@@ -181,6 +191,20 @@ fn make_message_event<C: MessageLikeEventContent>(sender: &UserId, content: C) -
|
||||
})
|
||||
}
|
||||
|
||||
fn make_redacted_message_event<C: RedactedMessageLikeEventContent>(
|
||||
sender: &UserId,
|
||||
content: C,
|
||||
) -> JsonValue {
|
||||
json!({
|
||||
"type": content.event_type(),
|
||||
"content": content,
|
||||
"event_id": EventId::new(server_name!("dummy.server")),
|
||||
"sender": sender,
|
||||
"origin_server_ts": next_server_ts(),
|
||||
"unsigned": make_redacted_unsigned(sender),
|
||||
})
|
||||
}
|
||||
|
||||
fn make_state_event<C: StateEventContent>(
|
||||
sender: &UserId,
|
||||
state_key: &str,
|
||||
|
||||
Reference in New Issue
Block a user