Skip to content

Commit

Permalink
Merge pull request solidusio#4344 from tvdeyen/fix-refund-form-input-…
Browse files Browse the repository at this point in the history
…format

Fix creating refund with amount in foreign format
  • Loading branch information
waiting-for-dev committed Apr 22, 2022
2 parents a137ae1 + 0a32a6e commit 6e8c190
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
8 changes: 8 additions & 0 deletions core/app/models/spree/refund.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@ def total_amount_reimbursed_for(reimbursement)
end
end

# Sets this price's amount to a new value, parsing it if the new value is
# a string.
#
# @param price [String, #to_d] a new amount
def amount=(price)
self[:amount] = Spree::LocalizedNumber.parse(price)
end

def description
payment.payment_method.name
end
Expand Down
15 changes: 15 additions & 0 deletions core/spec/models/spree/refund_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,21 @@
it "does not attempt to process a transaction" do
expect(subject.transaction_id).to be_nil
end

context "with a european price format" do
let(:amount) { "100,00" }
let(:payment_amount) { 200.0 }

before do
expect(I18n).to receive(:t).with(:'number.currency.format.separator') do
","
end
end

it "creates a refund record" do
expect { subject }.to change { Spree::Refund.count }.by(1)
end
end
end

describe "#perform!" do
Expand Down

0 comments on commit 6e8c190

Please sign in to comment.