fixup! Modify Calculator validation error messages [wip]

DC: the error message has now become "Amount Invalid input".
This commit is contained in:
James Wu
2023-03-03 00:53:29 +09:00
committed by David Cook
parent 7af26e6579
commit f5e2edb028
2 changed files with 11 additions and 13 deletions

View File

@@ -21,7 +21,7 @@ module NestedCalculatorValidation
def add_custom_error_messages
calculator.errors.messages&.each do |attribute, msgs|
msgs.each do |msg|
errors.add(:base, "#{localize_calculator_attributes[attribute]}: #{msg}")
errors.add(:base, "#{localize_calculator_attributes[attribute]} #{msg}")
end
end
end

View File

@@ -4,44 +4,44 @@ require 'spec_helper'
shared_examples "a parent model that has a Calculator" do |parent_name|
context "when the associated Calculator is valid" do
let(:parent) do
let(:valid_parent) do
build(parent_name, calculator: Calculator::FlatRate.new(preferred_amount: 10))
end
it "is valid" do
expect(parent).to be_valid
expect(valid_parent).to be_valid
end
end
context "when the associated Calculator is invalid" do
let(:parent) do
let(:invalid_parent) do
build(parent_name, calculator: Calculator::FlatRate.new(preferred_amount: "invalid"))
end
before do
parent.valid?
invalid_parent.valid?
end
it "is invalid" do
expect(parent).not_to be_valid
expect(invalid_parent).not_to be_valid
end
it "adds custom error messages to base" do
expect(parent.errors[:base]).to include(/^Amount: Invalid input/)
expect(invalid_parent.errors[:base]).to include(/^Amount: Invalid input/)
end
it "has the correct number of errors messages" do
error_messages = parent.errors.full_messages
error_messages = invalid_parent.errors.full_messages
expect(error_messages.count).to eq 1
end
it "does not include the generic Calculator error message" do
error_messages = parent.errors.full_messages
error_messages = invalid_parent.errors.full_messages
expect(error_messages).not_to include(/^Calculator is invalid$/)
end
it "does not include error message that begins with 'Calculator preferred'" do
error_messages = parent.errors.full_messages
error_messages = invalid_parent.errors.full_messages
expect(error_messages).not_to include(/^Calculator preferred/)
end
end
@@ -57,9 +57,7 @@ shared_examples "a parent model that has a Calculator" do |parent_name|
end
it "adds custom error messages to base" do
expect(localized_parent.errors[:base]).to include(
/#{I18n.t('spree.localized_number.invalid_format')}/
)
expect(localized_parent.errors[:base]).to include(/Amount has an invalid format/)
end
end
end