about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander <devkral@web.de>2020-01-10 22:58:16 +0100
committerYamagishi Kazutoshi <ykzts@desire.sh>2020-01-11 06:58:16 +0900
commit05756c9a14864655ae6777505a4ee5cfa9b0ee93 (patch)
tree72d3961d949f379244c0cfa006719e5321dc6ed8
parent206dfd7daddb888a8115804f2c88794b4230592a (diff)
improve status title (#8596)
* improve shown status title, useful for atom/rss

* use single quotes to satisfy codeclimate

* fix tests, make message more pretty

* fix tests

* fix codestyle

* fix codestyle

* remove atom_serializer_spec

Co-authored-by: Yamagishi Kazutoshi <ykzts@desire.sh>
-rw-r--r--app/models/status.rb6
-rw-r--r--spec/models/status_spec.rb12
2 files changed, 13 insertions, 5 deletions
diff --git a/app/models/status.rb b/app/models/status.rb
index 1cb381400..670109762 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -194,8 +194,12 @@ class Status < ApplicationRecord
   def title
     if destroyed?
       "#{account.acct} deleted status"
+    elsif reblog?
+      preview = sensitive ? '<sensitive>' : text.slice(0, 10).split("\n")[0]
+      "#{account.acct} shared #{reblog.account.acct}'s: #{preview}"
     else
-      reblog? ? "#{account.acct} shared a status by #{reblog.account.acct}" : "New status by #{account.acct}"
+      preview = sensitive ? '<sensitive>' : text.slice(0, 20).split("\n")[0]
+      "#{account.acct}: #{preview}"
     end
   end
 
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 51a10cd17..b238691a8 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -96,16 +96,20 @@ RSpec.describe Status, type: :model do
 
     context 'unless destroyed?' do
       context 'if reblog?' do
-        it 'returns "#{account.acct} shared a status by #{reblog.account.acct}"' do
+        it 'returns "#{account.acct} shared #{reblog.account.acct}\'s: #{preview}"' do
           reblog = subject.reblog = other
-          expect(subject.title).to eq "#{account.acct} shared a status by #{reblog.account.acct}"
+          preview = subject.text.slice(0, 10).split("\n")[0]
+          expect(subject.title).to(
+            eq "#{account.acct} shared #{reblog.account.acct}'s: #{preview}"
+          )
         end
       end
 
       context 'unless reblog?' do
-        it 'returns "New status by #{account.acct}"' do
+        it 'returns "#{account.acct}: #{preview}"' do
           subject.reblog = nil
-          expect(subject.title).to eq "New status by #{account.acct}"
+          preview = subject.text.slice(0, 20).split("\n")[0]
+          expect(subject.title).to eq "#{account.acct}: #{preview}"
         end
       end
     end