Add relationed_contents helper function on Relationable concern with spec

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

View File

@@ -5,6 +5,14 @@ module Relationable
has_many :related_contents, as: :parent_relationable, dependent: :destroy
end
def relate_content(relationable)
RelatedContent.find_or_create_by(parent_relationable: self, child_relationable: relationable)
end
def relationed_contents
related_contents.not_hidden.map { |related_content| related_content.child_relationable }
end
def report_related_content(relationable)
related_content = related_contents.find_by(child_relationable: relationable)
if related_content.present?

View File

@@ -60,4 +60,17 @@ describe RelatedContent do
end
end
describe '#relationed_contents' do
before do
create(:related_content, parent_relationable: parent_relationable, child_relationable: create(:proposal), times_reported: 6)
create(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable)
end
it 'returns not hidden by reports related contents' do
expect(parent_relationable.relationed_contents.count).to eq(1)
expect(parent_relationable.relationed_contents.first.class.name).to eq(child_relationable.class.name)
expect(parent_relationable.relationed_contents.first.id).to eq(child_relationable.id)
end
end
end