mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
45 lines
1.4 KiB
Ruby
45 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
shared_examples "a model using the LocalizedNumber module" do |attributes|
|
|
before do
|
|
allow(Spree::Config).to receive(:enable_localized_number?).and_return true
|
|
end
|
|
|
|
attributes.each do |attribute|
|
|
setter = "#{attribute}="
|
|
|
|
it "uses the LocalizedNumber.parse method when setting #{attribute}" do
|
|
allow(Spree::LocalizedNumber).to receive(:parse).and_return(nil)
|
|
expect(Spree::LocalizedNumber).to receive(:parse).with('1.599,99')
|
|
subject.__send__(setter, '1.599,99')
|
|
end
|
|
|
|
it "creates an error if the input to #{attribute} is invalid" do
|
|
subject.__send__(setter, '1.59,99')
|
|
subject.valid?
|
|
expect(subject.errors[attribute]).to include('has an invalid format. Please enter a number.')
|
|
end
|
|
end
|
|
end
|
|
|
|
shared_examples "a Spree Calculator model using the LocalizedNumber module" do |attributes|
|
|
before do
|
|
allow(Spree::Config).to receive(:enable_localized_number?).and_return true
|
|
end
|
|
|
|
attributes.each do |attribute|
|
|
setter = "#{attribute}="
|
|
|
|
it do
|
|
should_not validate_numericality_of(attribute).
|
|
with_message(I18n.t('activerecord.errors.messages.calculator_preferred_value_error'))
|
|
end
|
|
|
|
it "does not modify the attribute value when it is invalid" do
|
|
subject.__send__(setter, 'invalid')
|
|
subject.valid?
|
|
expect(subject.__send__(attribute)).to eq 'invalid'
|
|
end
|
|
end
|
|
end
|