Add relationed_contents helper function on Relationable concern with spec
This commit is contained in:
@@ -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?
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user