From f0dca7147b7ee8ba0f2ae3f3825ef77b82e48eb5 Mon Sep 17 00:00:00 2001 From: Bertocq Date: Mon, 27 Nov 2017 18:36:55 +0100 Subject: [PATCH] Add basic RelatedContent model spec to check multiple models can be related --- spec/models/relation_spec.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 spec/models/relation_spec.rb diff --git a/spec/models/relation_spec.rb b/spec/models/relation_spec.rb new file mode 100644 index 000000000..9e75516ce --- /dev/null +++ b/spec/models/relation_spec.rb @@ -0,0 +1,26 @@ +require 'rails_helper' + +describe RelatedContent do + + let(:parent_relationable) { create([:proposal, :debate, :budget_investment].sample) } + let(:child_relationable) { create([:proposal, :debate, :budget_investment].sample) } + + it "should allow relationables from various classes" do + expect(build(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable)).to be_valid + expect(build(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable)).to be_valid + expect(build(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable)).to be_valid + end + + it "should not allow empty relationables" do + expect(build(:related_content)).not_to be_valid + expect(build(:related_content, parent_relationable: parent_relationable)).not_to be_valid + expect(build(:related_content, child_relationable: child_relationable)).not_to be_valid + end + + it "should not allow repeated related contents" do + related_content = create(:related_content, parent_relationable: parent_relationable, child_relationable: child_relationable) + new_related_content = build(:related_content, parent_relationable: related_content.parent_relationable, child_relationable: related_content.child_relationable) + expect(new_related_content).not_to be_valid + end + +end