Add numericality validation for PerItem

This commit is contained in:
James Wu
2023-01-24 16:23:04 +09:00
committed by David Cook
parent 2cb25e6366
commit c68987c0f2
2 changed files with 8 additions and 0 deletions

View File

@@ -10,6 +10,9 @@ module Calculator
localize_number :preferred_amount
validates :preferred_amount,
numericality: { message: :calculator_preferred_value_error }
def self.description
I18n.t(:flat_rate_per_item)
end

View File

@@ -7,6 +7,11 @@ 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 "correctly calculates on a single line item object" do
allow(calculator).to receive_messages(calculable: shipping_calculable)
expect(calculator.compute(line_item).to_f).to eq(50) # 5 x 10