diff options
author | Joël Quenneville <joelq@thoughtbot.com> | 2017-04-07 14:18:30 -0400 |
---|---|---|
committer | Joël Quenneville <joelq@thoughtbot.com> | 2017-04-07 14:18:30 -0400 |
commit | d4c94fa004117fdb7226b1b846a12d12dc0542d9 (patch) | |
tree | 93d2a3a70ad6bb6f23a63c9f6fc086c9f197384f /spec/models/status_spec.rb | |
parent | 4e41cd9ab8f51120d558b70528b163c98993be53 (diff) |
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.
Diffstat (limited to 'spec/models/status_spec.rb')
-rw-r--r-- | spec/models/status_spec.rb | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index b9d079521..db244ebe7 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -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 |