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>
This commit is contained in:
Alexander 2020-01-10 22:58:16 +01:00 committed by Yamagishi Kazutoshi
parent 206dfd7dad
commit 05756c9a14
2 changed files with 13 additions and 5 deletions

View file

@ -194,8 +194,12 @@ class Status < ApplicationRecord
def title def title
if destroyed? if destroyed?
"#{account.acct} deleted status" "#{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 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
end end

View file

@ -96,16 +96,20 @@ RSpec.describe Status, type: :model do
context 'unless destroyed?' do context 'unless destroyed?' do
context 'if reblog?' 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 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
end end
context 'unless reblog?' do context 'unless reblog?' do
it 'returns "New status by #{account.acct}"' do it 'returns "#{account.acct}: #{preview}"' do
subject.reblog = nil 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 end
end end