From c1f6ec5f62a8406cdb1284637b3681d14e93b4e3 Mon Sep 17 00:00:00 2001 From: David Battersby Date: Wed, 1 May 2024 22:39:47 +0800 Subject: [PATCH] FIX: add excerpt fallback for chat message replies (#26834) --- plugins/chat/app/serializers/chat/in_reply_to_serializer.rb | 4 ++++ .../chat/spec/serializer/chat/in_reply_to_serializer_spec.rb | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/plugins/chat/app/serializers/chat/in_reply_to_serializer.rb b/plugins/chat/app/serializers/chat/in_reply_to_serializer.rb index 06a85d65aa6..1a447350af8 100644 --- a/plugins/chat/app/serializers/chat/in_reply_to_serializer.rb +++ b/plugins/chat/app/serializers/chat/in_reply_to_serializer.rb @@ -10,5 +10,9 @@ module Chat def user object.user || Chat::NullUser.new end + + def excerpt + object.excerpt || object.build_excerpt + end end end diff --git a/plugins/chat/spec/serializer/chat/in_reply_to_serializer_spec.rb b/plugins/chat/spec/serializer/chat/in_reply_to_serializer_spec.rb index 6c2e8c0409a..0bc164f41e9 100644 --- a/plugins/chat/spec/serializer/chat/in_reply_to_serializer_spec.rb +++ b/plugins/chat/spec/serializer/chat/in_reply_to_serializer_spec.rb @@ -30,5 +30,10 @@ RSpec.describe Chat::InReplyToSerializer do it "censors words" do expect(serializer.as_json[:excerpt]).to eq("ok ■■■■■") end + + it "builds an excerpt for replied to message if it doesn’t have one" do + message.update!(excerpt: nil) + expect(serializer.as_json[:excerpt]).to eq(message.build_excerpt) + end end end