mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 21:13:36 +00:00
message_edit: Fix "(deleted)" not showing for empty edited DMs.
This commit fixes a bug introduced in commit `37f2c5bc788`, where a message in DM is not updated to "(deleted)" when left empty after editing. Fixes: #33305
This commit is contained in:
committed by
Tim Abbott
parent
21412b9f79
commit
8a64940868
@@ -1262,16 +1262,6 @@ def build_message_edit_request(
|
||||
topic_name: str | None = None,
|
||||
content: str | None = None,
|
||||
) -> StreamMessageEditRequest | DirectMessageEditRequest:
|
||||
if not message.is_stream_message():
|
||||
# We have already validated the code to have content
|
||||
# as not None.
|
||||
assert content is not None
|
||||
return DirectMessageEditRequest(
|
||||
content=content,
|
||||
orig_content=message.content,
|
||||
is_content_edited=True,
|
||||
)
|
||||
|
||||
is_content_edited = False
|
||||
new_content = message.content
|
||||
if content is not None:
|
||||
@@ -1280,6 +1270,15 @@ def build_message_edit_request(
|
||||
content = "(deleted)"
|
||||
new_content = normalize_body(content)
|
||||
|
||||
if not message.is_stream_message():
|
||||
# We have already validated that at least one of content, topic, or stream
|
||||
# must be modified, and for DMs, only the content can be edited.
|
||||
return DirectMessageEditRequest(
|
||||
content=new_content,
|
||||
orig_content=message.content,
|
||||
is_content_edited=True,
|
||||
)
|
||||
|
||||
is_topic_edited = False
|
||||
topic_resolved = False
|
||||
topic_unresolved = False
|
||||
|
||||
@@ -396,6 +396,7 @@ class EditMessageTest(ZulipTestCase):
|
||||
|
||||
def test_edit_message_no_content(self) -> None:
|
||||
self.login("hamlet")
|
||||
# Check message edit in stream for no content.
|
||||
msg_id = self.send_stream_message(
|
||||
self.example_user("hamlet"), "Denmark", topic_name="editing", content="before edit"
|
||||
)
|
||||
@@ -409,6 +410,20 @@ class EditMessageTest(ZulipTestCase):
|
||||
content = Message.objects.filter(id=msg_id).values_list("content", flat=True)[0]
|
||||
self.assertEqual(content, "(deleted)")
|
||||
|
||||
# Check message edit in DMs for no content.
|
||||
msg_id = self.send_personal_message(
|
||||
from_user=self.example_user("hamlet"), to_user=self.example_user("cordelia")
|
||||
)
|
||||
result = self.client_patch(
|
||||
f"/json/messages/{msg_id}",
|
||||
{
|
||||
"content": " ",
|
||||
},
|
||||
)
|
||||
self.assert_json_success(result)
|
||||
content = Message.objects.filter(id=msg_id).values_list("content", flat=True)[0]
|
||||
self.assertEqual(content, "(deleted)")
|
||||
|
||||
def test_edit_message_in_unsubscribed_private_stream(self) -> None:
|
||||
hamlet = self.example_user("hamlet")
|
||||
self.login("hamlet")
|
||||
|
||||
Reference in New Issue
Block a user