From 918425fd93f3d945d71d2e41975d2bceb16d9ed5 Mon Sep 17 00:00:00 2001 From: David Cook Date: Fri, 28 Apr 2023 11:49:32 +1000 Subject: [PATCH] Remove customised error message We're now handling these values on the frontend, so can keep this simple. fixes up: Add numericality validation for * Add translation for Active Record error message --- .../calculator/flat_percent_item_total.rb | 2 +- app/models/calculator/flat_percent_per_item.rb | 2 +- app/models/calculator/flat_rate.rb | 2 +- app/models/calculator/flexi_rate.rb | 2 +- app/models/calculator/per_item.rb | 2 +- app/models/calculator/price_sack.rb | 2 +- config/locales/en.yml | 2 -- .../calculator/flat_percent_item_total_spec.rb | 5 +---- .../calculator/flat_percent_per_item_spec.rb | 5 +---- spec/models/calculator/flat_rate_spec.rb | 5 +---- spec/models/calculator/flexi_rate_spec.rb | 11 ++--------- spec/models/calculator/per_item_spec.rb | 5 +---- spec/models/calculator/price_sack_spec.rb | 17 +++-------------- 13 files changed, 15 insertions(+), 47 deletions(-) diff --git a/app/models/calculator/flat_percent_item_total.rb b/app/models/calculator/flat_percent_item_total.rb index 83a5674833..f0d7a330e5 100644 --- a/app/models/calculator/flat_percent_item_total.rb +++ b/app/models/calculator/flat_percent_item_total.rb @@ -5,7 +5,7 @@ module Calculator preference :flat_percent, :decimal, default: 0 validates :preferred_flat_percent, - numericality: { message: :calculator_preferred_value_error } + numericality: true def self.description Spree.t(:flat_percent) diff --git a/app/models/calculator/flat_percent_per_item.rb b/app/models/calculator/flat_percent_per_item.rb index b1b6b2303b..e078340d7b 100644 --- a/app/models/calculator/flat_percent_per_item.rb +++ b/app/models/calculator/flat_percent_per_item.rb @@ -9,7 +9,7 @@ class Calculator::FlatPercentPerItem < Spree::Calculator preference :flat_percent, :decimal, default: 0 validates :preferred_flat_percent, - numericality: { message: :calculator_preferred_value_error } + numericality: true def self.description I18n.t(:flat_percent_per_item) diff --git a/app/models/calculator/flat_rate.rb b/app/models/calculator/flat_rate.rb index afcdc80b8d..a130b88c17 100644 --- a/app/models/calculator/flat_rate.rb +++ b/app/models/calculator/flat_rate.rb @@ -5,7 +5,7 @@ module Calculator preference :amount, :decimal, default: 0 validates :preferred_amount, - numericality: { message: :calculator_preferred_value_error } + numericality: true def self.description I18n.t(:flat_rate_per_order) diff --git a/app/models/calculator/flexi_rate.rb b/app/models/calculator/flexi_rate.rb index 40556ef581..1959aec67e 100644 --- a/app/models/calculator/flexi_rate.rb +++ b/app/models/calculator/flexi_rate.rb @@ -8,7 +8,7 @@ module Calculator validates :preferred_first_item, :preferred_additional_item, - numericality: { message: :calculator_preferred_value_error } + numericality: true def self.description I18n.t(:flexible_rate) diff --git a/app/models/calculator/per_item.rb b/app/models/calculator/per_item.rb index c0525fd384..0df18ae3d4 100644 --- a/app/models/calculator/per_item.rb +++ b/app/models/calculator/per_item.rb @@ -5,7 +5,7 @@ module Calculator preference :amount, :decimal, default: 0 validates :preferred_amount, - numericality: { message: :calculator_preferred_value_error } + numericality: true def self.description I18n.t(:flat_rate_per_item) diff --git a/app/models/calculator/price_sack.rb b/app/models/calculator/price_sack.rb index 86ada80dde..217928581f 100644 --- a/app/models/calculator/price_sack.rb +++ b/app/models/calculator/price_sack.rb @@ -9,7 +9,7 @@ module Calculator validates :preferred_minimal_amount, :preferred_normal_amount, :preferred_discount_amount, - numericality: { message: :calculator_preferred_value_error } + numericality: true def self.description I18n.t(:price_sack) diff --git a/config/locales/en.yml b/config/locales/en.yml index 4497370d2e..0aecf7f347 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -91,8 +91,6 @@ en: preferred_unit_from_list: "Calculator Unit From List:" preferred_per_unit: "Calculator Per Unit:" errors: - messages: - calculator_preferred_value_error: "Invalid input. Please use only numbers. For example: 10, 5.5, -20" models: spree/user: attributes: diff --git a/spec/models/calculator/flat_percent_item_total_spec.rb b/spec/models/calculator/flat_percent_item_total_spec.rb index c9ad3865c9..a0c57c6266 100644 --- a/spec/models/calculator/flat_percent_item_total_spec.rb +++ b/spec/models/calculator/flat_percent_item_total_spec.rb @@ -8,10 +8,7 @@ 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 { is_expected.to validate_numericality_of(:preferred_flat_percent) } it "computes amount correctly for a single line item" do expect(calculator.compute(line_item)).to eq(1.0) diff --git a/spec/models/calculator/flat_percent_per_item_spec.rb b/spec/models/calculator/flat_percent_per_item_spec.rb index b95e08d0ab..ac873a0ba7 100644 --- a/spec/models/calculator/flat_percent_per_item_spec.rb +++ b/spec/models/calculator/flat_percent_per_item_spec.rb @@ -5,10 +5,7 @@ require 'spec_helper' describe Calculator::FlatPercentPerItem do let(:calculator) { Calculator::FlatPercentPerItem.new preferred_flat_percent: 20 } - 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 { is_expected.to validate_numericality_of(:preferred_flat_percent) } it "calculates for a simple line item" do line_item = Spree::LineItem.new price: 50, quantity: 2 diff --git a/spec/models/calculator/flat_rate_spec.rb b/spec/models/calculator/flat_rate_spec.rb index 20ca13ec69..92eaa864d0 100644 --- a/spec/models/calculator/flat_rate_spec.rb +++ b/spec/models/calculator/flat_rate_spec.rb @@ -7,8 +7,5 @@ describe Calculator::FlatRate do before { allow(calculator).to receive_messages preferred_amount: 10 } - it do - should validate_numericality_of(:preferred_amount). - with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") - end + it { is_expected.to validate_numericality_of(:preferred_amount) } end diff --git a/spec/models/calculator/flexi_rate_spec.rb b/spec/models/calculator/flexi_rate_spec.rb index 5224f5a408..e5a777a412 100644 --- a/spec/models/calculator/flexi_rate_spec.rb +++ b/spec/models/calculator/flexi_rate_spec.rb @@ -12,15 +12,8 @@ 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 + it { is_expected.to validate_numericality_of(:preferred_first_item) } + it { is_expected.to validate_numericality_of(:preferred_additional_item) } context 'when nb of items ordered is above preferred max' do let(:quantity) { 4.0 } diff --git a/spec/models/calculator/per_item_spec.rb b/spec/models/calculator/per_item_spec.rb index 4b0f72ecd8..914ca33dfa 100644 --- a/spec/models/calculator/per_item_spec.rb +++ b/spec/models/calculator/per_item_spec.rb @@ -7,10 +7,7 @@ describe Calculator::PerItem do let(:shipping_calculable) { double(:calculable) } let(:line_item) { build_stubbed(:line_item, quantity: 5) } - it do - should validate_numericality_of(:preferred_amount). - with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") - end + it { is_expected.to validate_numericality_of(:preferred_amount) } it "correctly calculates on a single line item object" do allow(calculator).to receive_messages(calculable: shipping_calculable) diff --git a/spec/models/calculator/price_sack_spec.rb b/spec/models/calculator/price_sack_spec.rb index 0754848035..771b8428ec 100644 --- a/spec/models/calculator/price_sack_spec.rb +++ b/spec/models/calculator/price_sack_spec.rb @@ -12,20 +12,9 @@ describe Calculator::PriceSack do end let(:line_item) { build_stubbed(:line_item, price: price, quantity: 2) } - it do - should validate_numericality_of(:preferred_minimal_amount). - with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") - end - - it do - should validate_numericality_of(:preferred_normal_amount). - with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") - end - - it do - should validate_numericality_of(:preferred_discount_amount). - with_message("Invalid input. Please use only numbers. For example: 10, 5.5, -20") - end + it { is_expected.to validate_numericality_of(:preferred_minimal_amount) } + it { is_expected.to validate_numericality_of(:preferred_normal_amount) } + it { is_expected.to validate_numericality_of(:preferred_discount_amount) } context 'when the order amount is below preferred minimal' do let(:price) { 2 }