about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander <devkral@web.de>2020-01-10 22:58:16 +0100
committermultiple creatures <dev@multiple-creature.party>2020-02-27 13:37:38 -0600
commitb54e626d3e9078f49ca45573604d6c88a1734917 (patch)
tree3d90e7caf2a8aa30fee34322bca19f8417826434
parent06bae23f0e537448a06430dada9a1ce6a654f9bc (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 55337a5e6..0d6982338 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -246,8 +246,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 8e90b92d0..ebf4a0250 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