Add error message if adding a voucher fails

It's not really useful to the user but better than failing silently
This commit is contained in:
Gaetan Craig-Riou
2023-03-27 15:12:27 +11:00
committed by Maikel Linke
parent 596c775af6
commit 3f609d3842
3 changed files with 17 additions and 4 deletions

View File

@@ -203,9 +203,12 @@ class SplitCheckoutController < ::BaseController
return false
end
# Create adjustment
# TODO add tax part of adjustement
voucher.create_adjustment(voucher.code, @order)
adjustment = voucher.create_adjustment(voucher.code, @order)
if adjustment.nil?
@order.errors.add(:voucher, I18n.t('split_checkout.errors.add_voucher_error'))
return false
end
true
end

View File

@@ -2095,6 +2095,7 @@ en:
select_a_payment_method: Select a payment method
no_shipping_methods_available: Checkout is not possible due to absence of shipping options. Please contact the shop owner.
voucher_not_found: Not found
add_voucher_error: There was an error while adding the voucher
order_paid: PAID
order_not_paid: NOT PAID
order_total: Total order

View File

@@ -279,7 +279,16 @@ describe SplitCheckoutController, type: :controller do
end
context "when adding fails" do
pending "returns 422 and an error message"
it "returns 422 and an error message" do
# Makes adding the voucher fails
allow(voucher).to receive(:compute_amount).and_return(0)
allow(Voucher).to receive(:find_by).and_return(voucher)
put :update, params: params
expect(response.status).to eq 422
expect(flash[:error]).to match "There was an error while adding the voucher"
end
end
end