From 5354c63d9a074a870ee7f75ad520fe49abd7628b Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 15 Mar 2021 10:36:07 +0000 Subject: [PATCH] Fix payment capture handling in Api::OrdersController Fixes: NoMethodError: undefined method `t' for # Location app/controllers/api/orders_controller.rb:50 - payment_capture_failed --- app/controllers/api/orders_controller.rb | 2 +- spec/controllers/api/orders_controller_spec.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/orders_controller.rb b/app/controllers/api/orders_controller.rb index 65176a0008..a0a4a0c013 100644 --- a/app/controllers/api/orders_controller.rb +++ b/app/controllers/api/orders_controller.rb @@ -47,7 +47,7 @@ module Api private def payment_capture_failed - render json: { error: t(:payment_processing_failed) }, status: :unprocessable_entity + render json: { error: I18n.t(:payment_processing_failed) }, status: :unprocessable_entity end def serialized_orders(orders) diff --git a/spec/controllers/api/orders_controller_spec.rb b/spec/controllers/api/orders_controller_spec.rb index e93c6d300b..2a5421e9cb 100644 --- a/spec/controllers/api/orders_controller_spec.rb +++ b/spec/controllers/api/orders_controller_spec.rb @@ -285,6 +285,18 @@ module Api expect(order.reload.pending_payments.empty?).to be true expect_order end + + context "when payment is not required" do + before do + allow_any_instance_of(Spree::Order).to receive(:payment_required?) { false } + end + + it "returns an error" do + put :capture, params: { id: order.number } + + expect(json_response['error']).to eq I18n.t(:payment_processing_failed) + end + end end describe "#ship" do