From 2cb25e636618d5266c7c0e0e46da000ebf96a0ef Mon Sep 17 00:00:00 2001 From: James Wu Date: Tue, 24 Jan 2023 16:19:17 +0900 Subject: [PATCH] Add numericality validation for FlexiRate --- app/models/calculator/flexi_rate.rb | 4 ++++ spec/models/calculator/flexi_rate_spec.rb | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/app/models/calculator/flexi_rate.rb b/app/models/calculator/flexi_rate.rb index bb6bb1ff9b..e8bb81458c 100644 --- a/app/models/calculator/flexi_rate.rb +++ b/app/models/calculator/flexi_rate.rb @@ -13,6 +13,10 @@ module Calculator localize_number :preferred_first_item, :preferred_additional_item + validates :preferred_first_item, + :preferred_additional_item, + numericality: { message: :calculator_preferred_value_error } + def self.description I18n.t(:flexible_rate) end diff --git a/spec/models/calculator/flexi_rate_spec.rb b/spec/models/calculator/flexi_rate_spec.rb index 81bbc95ee6..481df1a93e 100644 --- a/spec/models/calculator/flexi_rate_spec.rb +++ b/spec/models/calculator/flexi_rate_spec.rb @@ -12,6 +12,16 @@ describe Calculator::FlexiRate do ) end + it do + should validate_numericality_of(:preferred_first_item). + with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") + end + + it do + should validate_numericality_of(:preferred_additional_item). + with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") + end + context 'when nb of items ordered is above preferred max' do let(:quantity) { 4.0 }