From 13ffadc32a6286c47d33a10697f620adb69f4ebe Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Tue, 14 Feb 2023 13:31:42 +0100 Subject: [PATCH] test(sdk): Add handle_live_redacted_message_event --- .../src/room/timeline/tests/basic.rs | 23 +++------------- .../matrix-sdk/src/room/timeline/tests/mod.rs | 26 ++++++++++++++++++- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/crates/matrix-sdk/src/room/timeline/tests/basic.rs b/crates/matrix-sdk/src/room/timeline/tests/basic.rs index a8d07921b..4581f2d0d 100644 --- a/crates/matrix-sdk/src/room/timeline/tests/basic.rs +++ b/crates/matrix-sdk/src/room/timeline/tests/basic.rs @@ -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); diff --git a/crates/matrix-sdk/src/room/timeline/tests/mod.rs b/crates/matrix-sdk/src/room/timeline/tests/mod.rs index 423d4ddf4..5d0d8f359 100644 --- a/crates/matrix-sdk/src/room/timeline/tests/mod.rs +++ b/crates/matrix-sdk/src/room/timeline/tests/mod.rs @@ -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(&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(&self, sender: &UserId, content: C, prev_content: Option) where C: StaticStateEventContent, @@ -181,6 +191,20 @@ fn make_message_event(sender: &UserId, content: C) - }) } +fn make_redacted_message_event( + 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( sender: &UserId, state_key: &str,