From c09c37af98df3ed7448e84d65cd527bf1fca44a6 Mon Sep 17 00:00:00 2001 From: ysksn Date: Sun, 19 Nov 2017 12:15:17 +0900 Subject: [PATCH] Add tests for Status#title (#5718) --- spec/models/status_spec.rb | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index d58ff50192..4b5c208717 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -83,8 +83,31 @@ RSpec.describe Status, type: :model do end describe '#title' do - it 'is a shorter version of the content' do - expect(subject.title).to be_a String + # rubocop:disable Style/InterpolationCheck + + let(:account) { subject.account } + + context 'if destroyed?' do + it 'returns "#{account.acct} deleted status"' do + subject.destroy! + expect(subject.title).to eq "#{account.acct} deleted status" + end + end + + context 'unless destroyed?' do + context 'if reblog?' do + it 'returns "#{account.acct} shared a status by #{reblog.account.acct}"' do + reblog = subject.reblog = other + expect(subject.title).to eq "#{account.acct} shared a status by #{reblog.account.acct}" + end + end + + context 'unless reblog?' do + it 'returns "New status by #{account.acct}"' do + subject.reblog = nil + expect(subject.title).to eq "New status by #{account.acct}" + end + end end end