Add report_related_content helper funcion on Relationable concern with spec

This commit is contained in:
Bertocq
2017-11-28 01:46:00 +01:00
parent e02f511b3a
commit 0482eb4098
2 changed files with 20 additions and 0 deletions

View File

@@ -4,4 +4,12 @@ module Relationable
included do
has_many :related_contents, as: :parent_relationable, dependent: :destroy
end
def report_related_content(relationable)
related_content = related_contents.find_by(child_relationable: relationable)
if related_content.present?
related_content.increment!(:times_reported)
related_content.opposite_related_content.increment!(:times_reported)
end
end
end

View File

@@ -48,4 +48,16 @@ describe RelatedContent do
expect(child_relationable.related_contents).to be_empty
end
end
# TODO: Move this into a Relationable shared context
describe '#report_related_content' do
it 'increments both relation and opposite relation times_reported counters' do
related_content = create(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable)
parent_relationable.report_related_content(child_relationable)
expect(related_content.reload.times_reported).to eq(1)
expect(related_content.reload.opposite_related_content.times_reported).to eq(1)
end
end
end