From 096e388fdf659bd703b11dcabe9c0ccc33c131e3 Mon Sep 17 00:00:00 2001 From: James Wu Date: Tue, 24 Jan 2023 16:13:33 +0900 Subject: [PATCH] Add numericality validation for FlatPercentItemTotal --- app/models/calculator/flat_percent_item_total.rb | 3 +++ spec/models/calculator/flat_percent_item_total_spec.rb | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/app/models/calculator/flat_percent_item_total.rb b/app/models/calculator/flat_percent_item_total.rb index d4c2067444..a457749674 100644 --- a/app/models/calculator/flat_percent_item_total.rb +++ b/app/models/calculator/flat_percent_item_total.rb @@ -10,6 +10,9 @@ module Calculator localize_number :preferred_flat_percent + validates :preferred_flat_percent, + numericality: { message: :calculator_preferred_value_error } + def self.description Spree.t(:flat_percent) end diff --git a/spec/models/calculator/flat_percent_item_total_spec.rb b/spec/models/calculator/flat_percent_item_total_spec.rb index 7d34211259..8095fbc9f2 100644 --- a/spec/models/calculator/flat_percent_item_total_spec.rb +++ b/spec/models/calculator/flat_percent_item_total_spec.rb @@ -8,6 +8,11 @@ describe Calculator::FlatPercentItemTotal do before { allow(calculator).to receive_messages preferred_flat_percent: 10 } + it do + should validate_numericality_of(:preferred_flat_percent). + with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") + end + it "computes amount correctly for a single line item" do expect(calculator.compute(line_item)).to eq(1.0) end