aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/referential.rb6
-rw-r--r--spec/models/referential_spec.rb15
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