aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZog2018-03-29 10:02:28 +0200
committerZog2018-03-29 10:02:28 +0200
commit0b9d39df0ba1b3882edf0b50697f004bb402e820 (patch)
treefb576d436103c66e6ceef8ded897df6556fdb98b
parent8c9ab7cb67772fb8642aae56b96fb325fd18ae04 (diff)
downloadchouette-core-0b9d39df0ba1b3882edf0b50697f004bb402e820.tar.bz2
Fix MinMax Validation
-rw-r--r--app/models/concerns/min_max_values_validation.rb2
-rw-r--r--spec/support/shared_examples/compliance_control_validation.rb18
2 files changed, 19 insertions, 1 deletions
diff --git a/app/models/concerns/min_max_values_validation.rb b/app/models/concerns/min_max_values_validation.rb
index 91e760c5a..a79f5ec85 100644
--- a/app/models/concerns/min_max_values_validation.rb
+++ b/app/models/concerns/min_max_values_validation.rb
@@ -4,7 +4,7 @@ module MinMaxValuesValidation
included do
validates_presence_of :minimum, :maximum
validates_numericality_of :minimum, :maximum, allow_nil: true, greater_than_or_equal_to: 0
- validates_format_of :minimum, :maximum, with: %r{\A\d+\.\d{2}\Z}
+ validates_format_of :minimum, :maximum, with: %r{\A\d+(\.\d+)?\Z}
validate :min_max_values_validation
end
diff --git a/spec/support/shared_examples/compliance_control_validation.rb b/spec/support/shared_examples/compliance_control_validation.rb
index b23c2984f..3a8232193 100644
--- a/spec/support/shared_examples/compliance_control_validation.rb
+++ b/spec/support/shared_examples/compliance_control_validation.rb
@@ -12,7 +12,25 @@ RSpec.shared_examples_for 'has min_max_values' do
end
end
+ context "is valid" do
+ it 'if minimum is well formatted' do
+ subject.minimum = "12"
+ expect_it.to be_valid
+ subject.minimum = "12.0"
+ expect_it.to be_valid
+ subject.minimum = "12.01"
+ expect_it.to be_valid
+ end
+ end
+
context "is invalid" do
+ it 'if minimum is not well formatted' do
+ subject.minimum = "AA"
+ expect_it.not_to be_valid
+ subject.minimum = "12."
+ expect_it.not_to be_valid
+ end
+
it 'if no value is provided' do
subject.minimum = nil
subject.maximum = nil