Increase platform abstraction cohesion
This commit is contained in:
@@ -124,3 +124,66 @@ class ReactionNormalizationTests(TestCase):
|
||||
self.assertEqual("❤️", serialized["text"])
|
||||
self.assertEqual([], list(serialized.get("reactions") or []))
|
||||
self.assertEqual(str(anchor.id), serialized["reply_to_id"])
|
||||
|
||||
def test_apply_message_edit_tracks_history_and_updates_text(self):
|
||||
message = Message.objects.create(
|
||||
user=self.user,
|
||||
session=self.session,
|
||||
ts=1700000004000,
|
||||
sender_uuid="author-3",
|
||||
text="before",
|
||||
source_service="signal",
|
||||
source_message_id="1700000004000",
|
||||
)
|
||||
|
||||
updated = async_to_sync(history.apply_message_edit)(
|
||||
self.user,
|
||||
self.identifier,
|
||||
target_ts=1700000004000,
|
||||
new_text="after",
|
||||
source_service="signal",
|
||||
actor="+15550000000",
|
||||
payload={"origin": "test"},
|
||||
)
|
||||
|
||||
self.assertIsNotNone(updated)
|
||||
message.refresh_from_db()
|
||||
self.assertEqual("after", str(message.text or ""))
|
||||
edit_history = list((message.receipt_payload or {}).get("edit_history") or [])
|
||||
self.assertEqual(1, len(edit_history))
|
||||
self.assertEqual("before", str(edit_history[0].get("previous_text") or ""))
|
||||
self.assertEqual("after", str(edit_history[0].get("new_text") or ""))
|
||||
|
||||
def test_serialize_message_marks_deleted_and_preserves_edit_history(self):
|
||||
message = Message.objects.create(
|
||||
user=self.user,
|
||||
session=self.session,
|
||||
ts=1700000005000,
|
||||
sender_uuid="author-4",
|
||||
text="keep me",
|
||||
source_service="signal",
|
||||
source_message_id="1700000005000",
|
||||
receipt_payload={
|
||||
"edit_history": [
|
||||
{
|
||||
"edited_ts": 1700000005100,
|
||||
"source_service": "signal",
|
||||
"actor": "+15550000000",
|
||||
"previous_text": "old",
|
||||
"new_text": "keep me",
|
||||
}
|
||||
],
|
||||
"is_deleted": True,
|
||||
"deleted": {
|
||||
"deleted_ts": 1700000005200,
|
||||
"source_service": "signal",
|
||||
"actor": "+15550000000",
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
serialized = _serialize_message(message)
|
||||
self.assertTrue(bool(serialized.get("is_deleted")))
|
||||
self.assertEqual("(message deleted)", str(serialized.get("display_text") or ""))
|
||||
self.assertEqual(1, int(serialized.get("edit_count") or 0))
|
||||
self.assertEqual(1, len(list(serialized.get("edit_history") or [])))
|
||||
|
||||
Reference in New Issue
Block a user