aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlban Peignier2017-12-14 21:40:53 +0100
committerAlban Peignier2018-01-05 10:23:29 +0100
commit54c202a781a189c34390e699a19e7ebae9c03442 (patch)
tree16043ffe25d76919a06506bd7ce22ad91cdab49f
parent638a1864a027226c9c0b26b01ca80a85435387f7 (diff)
downloadchouette-core-54c202a781a189c34390e699a19e7ebae9c03442.tar.bz2
Ignore detect_overlapped_referentials when Referential is into a ReferentialSuite. Refs #5299
-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