diff options
| -rw-r--r-- | app/models/referential.rb | 6 | ||||
| -rw-r--r-- | spec/models/referential_spec.rb | 15 |
2 files changed, 20 insertions, 1 deletions
diff --git a/app/models/referential.rb b/app/models/referential.rb index c77fd4e3e..4fa353a37 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -296,7 +296,7 @@ class Referential < ActiveRecord::Base overlapped_referential_ids.present? end - validate :detect_overlapped_referentials + validate :detect_overlapped_referentials, unless: :in_referential_suite? def detect_overlapped_referentials self.class.where(id: overlapped_referential_ids).each do |referential| @@ -305,6 +305,10 @@ class Referential < ActiveRecord::Base end end + def in_referential_suite? + referential_suite_id.present? + end + attr_accessor :inline_clone def clone_schema cloning = ReferentialCloning.new source_referential: created_from, target_referential: self diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb index 7816e7232..45881333f 100644 --- a/spec/models/referential_spec.rb +++ b/spec/models/referential_spec.rb @@ -125,4 +125,19 @@ describe Referential, :type => :model do end end + context "used in a ReferentialSuite" do + before do + ref.referential_suite_id = 42 + end + + it "return true to in_referential_suite?" do + expect(ref.in_referential_suite?).to be(true) + end + + it "don't use detect_overlapped_referentials in validation" do + expect(ref).to_not receive(:detect_overlapped_referentials) + ref.valid? + end + end + end |
