From 5d2c612839864f068a7a5dd611ff25fb1ae55bb1 Mon Sep 17 00:00:00 2001 From: Andy Brett Date: Wed, 3 Feb 2021 10:00:45 -0800 Subject: [PATCH] don't send emails if auth required during checkout --- app/services/checkout/stripe_redirect.rb | 3 ++- .../order/stripe_sca_payment_authorize.rb | 4 ++-- .../order/stripe_sca_payment_authorize_spec.rb | 9 +++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/services/checkout/stripe_redirect.rb b/app/services/checkout/stripe_redirect.rb index b0c0d42053..41bcbec0a1 100644 --- a/app/services/checkout/stripe_redirect.rb +++ b/app/services/checkout/stripe_redirect.rb @@ -14,7 +14,8 @@ module Checkout def path return unless stripe_payment_method? - payment = OrderManagement::Order::StripeScaPaymentAuthorize.new(@order).call!(full_checkout_path) + payment = OrderManagement::Order::StripeScaPaymentAuthorize.new(@order). + call!(full_checkout_path, false) raise if @order.errors.any? field_with_url(payment) diff --git a/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb b/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb index 474967ac5c..82a79b5139 100644 --- a/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb +++ b/engines/order_management/app/services/order_management/order/stripe_sca_payment_authorize.rb @@ -10,14 +10,14 @@ module OrderManagement @payment = OrderPaymentFinder.new(@order).last_pending_payment end - def call!(redirect_url = full_order_path(@order)) + def call!(redirect_url = full_order_path(@order), send_emails = true) return unless @payment&.checkout? @payment.authorize!(redirect_url) @order.errors.add(:base, I18n.t('authorization_failure')) unless @payment.pending? - if @payment.cvv_response_message.present? + if send_emails && @payment.cvv_response_message.present? PaymentMailer.authorize_payment(@payment).deliver_now PaymentMailer.authorization_required(@payment).deliver_now end diff --git a/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb b/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb index 08e54e4297..81adcf72df 100644 --- a/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb +++ b/engines/order_management/spec/services/order_management/order/stripe_sca_payment_authorize_spec.rb @@ -78,6 +78,15 @@ module OrderManagement expect(PaymentMailer).to have_received(:authorization_required) expect(mail_mock).to have_received(:deliver_now).twice end + + it "doesn't send emails if param is set to false" do + payment_authorize.call!(nil, false) + + expect(order.errors.size).to eq 0 + expect(PaymentMailer).to_not have_received(:authorize_payment) + expect(PaymentMailer).to_not have_received(:authorization_required) + expect(mail_mock).to_not have_received(:deliver_now) + end end end end