0
0
Fork 0

DRY up reblog vs original status check

Checking reblog vs original status was happening in multiple places
across the app. For views, this logic was encapsulated in a helper
method named `proper_status` but in the other layers of the app, the
logic was duplicated.

Because the logic is used at all layers of the app, we extracted it into
a `Status#proper` method on the model and changed all uses of the logic
to use this method. There is now a single source of truth for this
condition.

We added test coverage to untested methods that got refactored.
This commit is contained in:
Joël Quenneville 2017-04-07 14:18:30 -04:00
parent 4e41cd9ab8
commit d4c94fa004
7 changed files with 86 additions and 11 deletions

View file

@ -97,4 +97,15 @@ RSpec.describe Status, type: :model do
describe '#favourites_count' do
pending
end
describe '#proper' do
it 'is itself for original statuses' do
expect(subject.proper).to eq subject
end
it 'is the source status for reblogs' do
subject.reblog = other
expect(subject.proper).to eq other
end
end
end