diff --git a/crates/matrix-sdk-ui/src/timeline/inner/mod.rs b/crates/matrix-sdk-ui/src/timeline/inner/mod.rs index 88e8fe134..609cb04dd 100644 --- a/crates/matrix-sdk-ui/src/timeline/inner/mod.rs +++ b/crates/matrix-sdk-ui/src/timeline/inner/mod.rs @@ -622,6 +622,13 @@ impl TimelineInner

{ } }; + if matches!( + result, + ReactionToggleResult::AddFailure { .. } | ReactionToggleResult::RedactFailure { .. } + ) { + return Err(super::Error::FailedToToggleReaction); + } + Ok(follow_up_action) } diff --git a/crates/matrix-sdk-ui/src/timeline/tests/reactions.rs b/crates/matrix-sdk-ui/src/timeline/tests/reactions.rs index c0b2c62f6..3b938dae3 100644 --- a/crates/matrix-sdk-ui/src/timeline/tests/reactions.rs +++ b/crates/matrix-sdk-ui/src/timeline/tests/reactions.rs @@ -51,7 +51,7 @@ async fn add_reaction_failed() { timeline .handle_reaction_response(&reaction, &ReactionToggleResult::AddFailure { txn_id }) .await - .unwrap(); + .unwrap_err(); assert_reactions_are_removed(&mut stream, &msg_id, msg_pos).await; assert_no_more_updates(&mut stream).await; @@ -135,7 +135,7 @@ async fn redact_reaction_failure() { &ReactionToggleResult::RedactFailure { event_id: event_id.clone() }, ) .await - .unwrap(); + .unwrap_err(); assert_reaction_is_updated(&mut stream, &msg_id, msg_pos, Some(&event_id), None).await; assert_no_more_updates(&mut stream).await; @@ -229,7 +229,7 @@ async fn reactions_store_timestamp() { &ReactionToggleResult::RedactFailure { event_id: msg_id.clone() }, ) .await - .unwrap(); + .unwrap_err(); // Restores an event with a valid timestamp. let event = assert_event_is_updated(&mut stream, &msg_id, msg_pos).await;