Skip to content

Commit 67c618e

Browse files
committed
fix: Set better message when receiving leave message in InBroadcast
1 parent cd14a15 commit 67c618e

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/chat/chat_tests.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::ephemeral::Timer;
55
use crate::headerdef::HeaderDef;
66
use crate::imex::{ImexMode, has_backup, imex};
77
use crate::message::{MessengerMessage, delete_msgs};
8-
use crate::mimeparser;
8+
use crate::mimeparser::{self, MimeMessage};
99
use crate::receive_imf::receive_imf;
1010
use crate::test_utils::{
1111
AVATAR_64x64_BYTES, AVATAR_64x64_DEDUPLICATED, TestContext, TestContextManager,
@@ -3017,6 +3017,12 @@ async fn test_leave_broadcast_multidevice() -> Result<()> {
30173017
remove_contact_from_chat(bob0, bob_chat_id, ContactId::SELF).await?;
30183018

30193019
let leave_msg = bob0.pop_sent_msg().await;
3020+
let parsed = MimeMessage::from_bytes(bob1, leave_msg.payload().as_bytes(), None).await?;
3021+
assert_eq!(
3022+
parsed.parts[0].msg,
3023+
stock_str::msg_group_left_remote(bob0).await
3024+
);
3025+
30203026
let rcvd = bob1.recv_msg(&leave_msg).await;
30213027

30223028
assert_eq!(rcvd.chat_id, bob1_hello.chat_id);

src/receive_imf.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3486,6 +3486,15 @@ async fn apply_in_broadcast_changes(
34863486
)
34873487
.await?;
34883488

3489+
if let Some(_removed_addr) = mime_parser.get_header(HeaderDef::ChatGroupMemberRemoved) {
3490+
// The only member added/removed message that is ever sent is "I left.",
3491+
// so, this is the only case we need to handle here
3492+
if from_id == ContactId::SELF {
3493+
better_msg
3494+
.get_or_insert(stock_str::msg_group_left_local(context, ContactId::SELF).await);
3495+
}
3496+
}
3497+
34893498
if send_event_chat_modified {
34903499
context.emit_event(EventType::ChatModified(chat.id));
34913500
chatlist_events::emit_chatlist_item_changed(context, chat.id);

0 commit comments

Comments
 (0)