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 | 
