From 0b9d39df0ba1b3882edf0b50697f004bb402e820 Mon Sep 17 00:00:00 2001 From: Zog Date: Thu, 29 Mar 2018 10:02:28 +0200 Subject: Fix MinMax Validation --- app/models/concerns/min_max_values_validation.rb | 2 +- .../shared_examples/compliance_control_validation.rb | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3