From 7e5ad8c8a4693914257cc1a71b755ed0a2939b60 Mon Sep 17 00:00:00 2001 From: Ryan Murphy Date: Wed, 18 Oct 2023 22:33:02 -0400 Subject: [PATCH] 9048: Fix Stripe payment flash rendering issue --- .../admin/payments/services/payment.js.coffee | 5 +++-- .../spree/admin/payments_controller.rb | 20 ++++++------------- config/locales/ar.yml | 1 - config/locales/ca.yml | 1 - config/locales/cy.yml | 1 - config/locales/de_CH.yml | 1 - config/locales/de_DE.yml | 1 - config/locales/el.yml | 1 - config/locales/en.yml | 1 - config/locales/en_CA.yml | 1 - config/locales/en_FR.yml | 1 - config/locales/en_GB.yml | 1 - config/locales/en_IE.yml | 1 - config/locales/en_US.yml | 1 - config/locales/es.yml | 1 - config/locales/es_CR.yml | 1 - config/locales/es_US.yml | 1 - config/locales/fr.yml | 1 - config/locales/fr_BE.yml | 1 - config/locales/fr_CA.yml | 1 - config/locales/fr_CH.yml | 1 - config/locales/fr_CM.yml | 1 - config/locales/hu.yml | 1 - config/locales/it.yml | 1 - config/locales/it_CH.yml | 1 - config/locales/ko.yml | 1 - config/locales/nb.yml | 1 - config/locales/pt_BR.yml | 1 - config/locales/ru.yml | 1 - config/locales/tr.yml | 1 - config/locales/uk.yml | 1 - .../payments/payments_controller_spec.rb | 10 +++++----- spec/system/admin/payments_spec.rb | 1 + 33 files changed, 15 insertions(+), 50 deletions(-) diff --git a/app/assets/javascripts/admin/payments/services/payment.js.coffee b/app/assets/javascripts/admin/payments/services/payment.js.coffee index a87497226d..487dafcd03 100644 --- a/app/assets/javascripts/admin/payments/services/payment.js.coffee +++ b/app/assets/javascripts/admin/payments/services/payment.js.coffee @@ -42,8 +42,9 @@ angular.module('admin.payments').factory 'Payment', (AdminStripeElements, curren submit: => munged = @preprocess() - PaymentResource.create({order_id: munged.order_id}, munged, (response, headers, status)=> - $window.location.pathname = "/admin/orders/" + munged.order_id + "/payments" + PaymentResource.create({order_id: munged.order_id}, munged, (response, headers, status) -> + document.body.innerHTML = Object.values(response).join('') + $window.history.pushState({}, '', "/admin/orders/" + munged.order_id + "/payments") , (response) -> StatusMessage.display 'error', t("spree.admin.payments.source_forms.stripe.error_saving_payment") ) diff --git a/app/controllers/spree/admin/payments_controller.rb b/app/controllers/spree/admin/payments_controller.rb index 1933962c1a..b3c19242d0 100644 --- a/app/controllers/spree/admin/payments_controller.rb +++ b/app/controllers/spree/admin/payments_controller.rb @@ -33,23 +33,15 @@ module Spree return end - if @order.completed? - authorize_stripe_sca_payment - @payment.process_offline! - flash[:success] = flash_message_for(@payment, :successfully_created) + OrderWorkflow.new(@order).complete! unless @order.completed? - redirect_to spree.admin_order_payments_path(@order) - else - OrderWorkflow.new(@order).complete! - authorize_stripe_sca_payment - @payment.process_offline! - - flash[:success] = Spree.t(:new_order_completed) - redirect_to spree.edit_admin_order_url(@order) - end + authorize_stripe_sca_payment + @payment.process_offline! + flash[:success] = flash_message_for(@payment, :successfully_created) + redirect_to spree.admin_order_payments_path(@order) rescue Spree::Core::GatewayError => e flash[:error] = e.message.to_s - redirect_to spree.new_admin_order_payment_path(@order) + redirect_to spree.admin_order_payments_path(@order) end end diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 1ae77551a2..a91b9d60ec 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -3590,7 +3590,6 @@ ar: gateway_error: "عملية الدفع فشلت" more: "أكثر" new_adjustment: "تعديل جديد" - new_order_completed: "طلب جديد مكتمل" new_tax_category: "فئة ضريبية جديدة" new_taxon: "اصنوفة جديدة" new_user: "مستخدم جديد" diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 80456d9dcf..f2f6eb0554 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -3398,7 +3398,6 @@ ca: gateway_error: "El pagament ha fallat" more: "Més" new_adjustment: "Nou ajustament" - new_order_completed: "S'ha completat la nova comanda" new_tax_category: "Nova categoria fiscal" new_taxon: "Nou tàxon" new_user: "Nou usuari" diff --git a/config/locales/cy.yml b/config/locales/cy.yml index ae28f6c6ff..6092cccc55 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -3658,7 +3658,6 @@ cy: gateway_error: "Taliad wedi methu" more: "Mwy" new_adjustment: "Addasiad newydd" - new_order_completed: "Cwblhawyd archeb newydd" new_tax_category: "Categori treth newydd" new_taxon: "Tacson newydd" new_user: "Defnyddiwr newydd" diff --git a/config/locales/de_CH.yml b/config/locales/de_CH.yml index 9947639600..68608ca9af 100644 --- a/config/locales/de_CH.yml +++ b/config/locales/de_CH.yml @@ -3392,7 +3392,6 @@ de_CH: gateway_error: "Zahlung fehlgeschlagen" more: "Mehr" new_adjustment: "Neue Anpassung" - new_order_completed: "Neue Bestellung abgeschlossen" new_tax_category: "Neue Steuerkategorie" new_taxon: "Neue Kategorie" new_user: "Neuer Benutzer" diff --git a/config/locales/de_DE.yml b/config/locales/de_DE.yml index 50241acd6c..e54c8c5cbc 100644 --- a/config/locales/de_DE.yml +++ b/config/locales/de_DE.yml @@ -3635,7 +3635,6 @@ de_DE: gateway_error: "Zahlung fehlgeschlagen" more: "Mehr" new_adjustment: "Neue Anpassung" - new_order_completed: "Neue Bestellung abgeschlossen" new_tax_category: "Neue Steuerkategorie" new_taxon: "Neue Kategorie" new_user: "Neuer Benutzer" diff --git a/config/locales/el.yml b/config/locales/el.yml index 17a18c760a..fd332b77e5 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -3055,7 +3055,6 @@ el: gateway_error: "Η πληρωμή απέτυχε" more: "Περισσότερα" new_adjustment: "Νέα προσαρμογή" - new_order_completed: "Η νέα παραγγελία ολοκληρώθηκε" new_tax_category: "Νέα Φορολογική Κατηγορία" new_taxon: "Νέο ταξί" new_user: "Νέος χρήστης" diff --git a/config/locales/en.yml b/config/locales/en.yml index 2e9842a73f..d2a2e0101d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3781,7 +3781,6 @@ See the %{link} to find out more about %{sitename}'s features and to start using gateway_error: "Payment failed" more: "More" new_adjustment: "New adjustment" - new_order_completed: "New order completed" new_tax_category: "New Tax Category" new_taxon: "New taxon" new_user: "New user" diff --git a/config/locales/en_CA.yml b/config/locales/en_CA.yml index b0124fa3d2..2dd6401653 100644 --- a/config/locales/en_CA.yml +++ b/config/locales/en_CA.yml @@ -3617,7 +3617,6 @@ en_CA: gateway_error: "Payment failed" more: "More" new_adjustment: "New adjustment" - new_order_completed: "New order completed" new_tax_category: "New Tax Category" new_taxon: "New taxon" new_user: "New user" diff --git a/config/locales/en_FR.yml b/config/locales/en_FR.yml index f1600818f6..94e282df3b 100644 --- a/config/locales/en_FR.yml +++ b/config/locales/en_FR.yml @@ -3620,7 +3620,6 @@ en_FR: gateway_error: "Payment failed" more: "More" new_adjustment: "New adjustment" - new_order_completed: "New order completed" new_tax_category: "New Tax Category" new_taxon: "New taxon" new_user: "New user" diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml index 3fa341d7df..820b8a7882 100644 --- a/config/locales/en_GB.yml +++ b/config/locales/en_GB.yml @@ -3622,7 +3622,6 @@ en_GB: gateway_error: "Payment failed" more: "More" new_adjustment: "New adjustment" - new_order_completed: "New order completed" new_tax_category: "New Tax Category" new_taxon: "New taxon" new_user: "New user" diff --git a/config/locales/en_IE.yml b/config/locales/en_IE.yml index 6f35b8224a..c9bd1339d7 100644 --- a/config/locales/en_IE.yml +++ b/config/locales/en_IE.yml @@ -3484,7 +3484,6 @@ en_IE: gateway_error: "Payment failed" more: "More" new_adjustment: "New adjustment" - new_order_completed: "New order completed" new_tax_category: "New Tax Category" new_taxon: "New taxon" new_user: "New user" diff --git a/config/locales/en_US.yml b/config/locales/en_US.yml index bd93c9b858..e95a838c40 100644 --- a/config/locales/en_US.yml +++ b/config/locales/en_US.yml @@ -3330,7 +3330,6 @@ en_US: gateway_error: "Payment failed" more: "More" new_adjustment: "New adjustment" - new_order_completed: "New order completed" new_tax_category: "New Tax Category" new_taxon: "New taxon" new_user: "New user" diff --git a/config/locales/es.yml b/config/locales/es.yml index f1b2b08cd9..718f08d9fd 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -3464,7 +3464,6 @@ es: gateway_error: "Pago fallido" more: "Más" new_adjustment: "Nuevo ajuste" - new_order_completed: "Nuevo pedido completado" new_tax_category: "Nueva categoría de impuestos" new_taxon: "Nuevo taxón" new_user: "Nuevo usuario" diff --git a/config/locales/es_CR.yml b/config/locales/es_CR.yml index 12f91924c9..73799a6107 100644 --- a/config/locales/es_CR.yml +++ b/config/locales/es_CR.yml @@ -3429,7 +3429,6 @@ es_CR: gateway_error: "Pago fallido" more: "Más" new_adjustment: "Nuevo ajuste" - new_order_completed: "Nuevo pedido completado" new_tax_category: "Nueva categoría de impuestos" new_taxon: "Nuevo taxon" new_user: "Nuevo usuari" diff --git a/config/locales/es_US.yml b/config/locales/es_US.yml index 27c8cb2b9e..c93c64a1b1 100644 --- a/config/locales/es_US.yml +++ b/config/locales/es_US.yml @@ -3285,7 +3285,6 @@ es_US: gateway_error: "Pago fallido" more: "Más" new_adjustment: "Nuevo ajuste" - new_order_completed: "Nuevo pedido completado" new_tax_category: "Nueva categoría de impuestos" new_user: "Nuevo usuario" no_pending_payments: "No tiene pagos pendientes" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index ae8dbb3e08..ce0775af8e 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -3678,7 +3678,6 @@ fr: gateway_error: "Le paiement a échoué" more: "Plus" new_adjustment: "Nouvel ajustement" - new_order_completed: "Nouvelle commande finalisée" new_tax_category: "Nouvelle catégorie de taxe" new_taxon: "Nouvelle taxonomie" new_user: "Nouvel utilisateur" diff --git a/config/locales/fr_BE.yml b/config/locales/fr_BE.yml index 0210c6a4f6..2766b60a94 100644 --- a/config/locales/fr_BE.yml +++ b/config/locales/fr_BE.yml @@ -3291,7 +3291,6 @@ fr_BE: gateway_error: "Paiement échoué" more: "Plus" new_adjustment: "Nouvel ajustement" - new_order_completed: "Nouvelle commande terminée" new_tax_category: "Nouvelle catégorie de taxe" no_pending_payments: "Aucun paiement en attente" none: "Aucun" diff --git a/config/locales/fr_CA.yml b/config/locales/fr_CA.yml index 6c6d57535f..1e0af42194 100644 --- a/config/locales/fr_CA.yml +++ b/config/locales/fr_CA.yml @@ -3661,7 +3661,6 @@ fr_CA: gateway_error: "Le paiement a échoué" more: "Plus" new_adjustment: "Nouvel ajustement" - new_order_completed: "Nouvelle commande finalisée" new_tax_category: "Nouvelle catégorie de taxe" new_taxon: "Nouvelle taxonomie" new_user: "Nouvel utilisateur" diff --git a/config/locales/fr_CH.yml b/config/locales/fr_CH.yml index 2af52aeeb9..0ac132edaf 100644 --- a/config/locales/fr_CH.yml +++ b/config/locales/fr_CH.yml @@ -3436,7 +3436,6 @@ fr_CH: gateway_error: "Le paiement a échoué" more: "Plus" new_adjustment: "Nouvel ajustement" - new_order_completed: "Nouvelle commande finalisée" new_tax_category: "Nouvelle catégorie de taxe" new_taxon: "Nouvelle taxonomie" new_user: "Nouvel utilisateur" diff --git a/config/locales/fr_CM.yml b/config/locales/fr_CM.yml index 7e2845b8b4..b8029a3845 100644 --- a/config/locales/fr_CM.yml +++ b/config/locales/fr_CM.yml @@ -3330,7 +3330,6 @@ fr_CM: gateway_error: "Le paiement a échoué" more: "Plus" new_adjustment: "Nouvel ajustement" - new_order_completed: "Nouvelle commande finalisée" new_tax_category: "Nouvelle catégorie de taxe" new_taxon: "Nouvelle taxonomie" new_user: "Nouvel utilisateur" diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 3ffff57492..5c29d3b0b0 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -3424,7 +3424,6 @@ hu: gateway_error: "Fizetés meghiúsult" more: "Több" new_adjustment: "Új beállítás" - new_order_completed: "Új megrendelés elkészült" new_tax_category: "Új adókategória" new_taxon: "Új taxon" new_user: "Új felhasználó" diff --git a/config/locales/it.yml b/config/locales/it.yml index 574d50c661..f93995a688 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -3503,7 +3503,6 @@ it: gateway_error: "Pagamento fallito" more: "Di più" new_adjustment: "Nuovo aggiustamento" - new_order_completed: "Nuova richiesta completata" new_tax_category: "Nuova Categoria imposta" new_taxon: "Nuova tassonomia" new_user: "Nuovo utente" diff --git a/config/locales/it_CH.yml b/config/locales/it_CH.yml index 0df66096ec..eda5ac1680 100644 --- a/config/locales/it_CH.yml +++ b/config/locales/it_CH.yml @@ -3365,7 +3365,6 @@ it_CH: gateway_error: "Pagamento fallito" more: "Di più" new_adjustment: "Nuovo aggiustamento" - new_order_completed: "Nuova richiesta completata" new_tax_category: "Nuova Categoria imposta" new_taxon: "Nuova tassonomia" new_user: "Nuovo utente" diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 1430e57fee..59a993af92 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -3331,7 +3331,6 @@ ko: gateway_error: "결제 실패" more: "추가 정보" new_adjustment: "새 조정" - new_order_completed: "신규 주문 완료" new_tax_category: "신규 세금 카테고리" new_taxon: "새 분류군" new_user: "신규 사용자" diff --git a/config/locales/nb.yml b/config/locales/nb.yml index 280fe29620..7551393ac8 100644 --- a/config/locales/nb.yml +++ b/config/locales/nb.yml @@ -3591,7 +3591,6 @@ nb: gateway_error: "Betalingen feilet" more: "Mer" new_adjustment: "Ny justering" - new_order_completed: "Ny bestilling fullført" new_tax_category: "Ny avgiftskategori" new_taxon: "Ny kategori" new_user: "Ny bruker" diff --git a/config/locales/pt_BR.yml b/config/locales/pt_BR.yml index b699b4785f..5f154a20dd 100644 --- a/config/locales/pt_BR.yml +++ b/config/locales/pt_BR.yml @@ -3227,7 +3227,6 @@ pt_BR: gateway_error: "Falha no pagamento" more: "Mais" new_adjustment: "Novo ajuste" - new_order_completed: "Novo pedido realizado" new_tax_category: "Nova Categoria de Taxa" new_taxon: "Nova taxonomia" new_user: "Novo usuário" diff --git a/config/locales/ru.yml b/config/locales/ru.yml index d85a5f8e89..a0b4b40790 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -3647,7 +3647,6 @@ ru: gateway_error: "Платеж не прошел" more: "Ещё" new_adjustment: "Новая корректировка" - new_order_completed: "Новый заказ выполнен" new_tax_category: "Новая Налоговая Категория" new_taxon: "Новая таксономия" new_user: "Новый пользователь" diff --git a/config/locales/tr.yml b/config/locales/tr.yml index b866850642..88b7fa7a26 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -3222,7 +3222,6 @@ tr: gateway_error: "Ödeme başarısız" more: "Daha Fazla" new_adjustment: "Yeni düzenleme" - new_order_completed: "Yeni sipariş tamamlandı" new_tax_category: "Yeni Vergi Kategorisi" new_taxon: "Yeni kategori" new_user: "Yeni kullanıcı" diff --git a/config/locales/uk.yml b/config/locales/uk.yml index c836f7793f..4e29df9ebf 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -3446,7 +3446,6 @@ uk: gateway_error: "Платіж не вдався" more: "Більше" new_adjustment: "Нове коригування" - new_order_completed: "Нове замовлення виконано" new_tax_category: "Нова податкова категорія" new_taxon: "Новий таксон" new_user: "Новий користувач" diff --git a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb index 53003d8700..a7a06816d5 100644 --- a/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb +++ b/spec/controllers/spree/admin/orders/payments/payments_controller_spec.rb @@ -57,7 +57,7 @@ describe Spree::Admin::PaymentsController, type: :controller do it "redirects to new payment page with flash error" do spree_post :create, payment: params, order_id: order.number - redirects_to_new_payment_page_with_flash_error("Stripe Authorization Failure") + redirects_to_payments_list_page_with_flash_error("Stripe Authorization Failure") expect(order.reload.payments.last.state).to eq "checkout" end end @@ -70,7 +70,7 @@ describe Spree::Admin::PaymentsController, type: :controller do it "redirects to new payment page with flash error" do spree_post :create, payment: params, order_id: order.number - redirects_to_new_payment_page_with_flash_error("Authorization Failure") + redirects_to_payments_list_page_with_flash_error("Authorization Failure") expect(order.reload.payments.last.state).to eq "checkout" end end @@ -85,7 +85,7 @@ describe Spree::Admin::PaymentsController, type: :controller do it "redirects to new payment page with flash error" do spree_post :create, payment: params, order_id: order.number - redirects_to_new_payment_page_with_flash_error('Action required') + redirects_to_payments_list_page_with_flash_error('Action required') end end @@ -127,8 +127,8 @@ describe Spree::Admin::PaymentsController, type: :controller do expect(flash[:success]).to eq "Payment has been successfully created!" end - def redirects_to_new_payment_page_with_flash_error(flash_error) - expect_redirect_to spree.new_admin_order_payment_url(order) + def redirects_to_payments_list_page_with_flash_error(flash_error) + expect_redirect_to spree.admin_order_payments_url(order) expect(flash[:error]).to eq flash_error end diff --git a/spec/system/admin/payments_spec.rb b/spec/system/admin/payments_spec.rb index b5434045d6..9dbb7be4c4 100644 --- a/spec/system/admin/payments_spec.rb +++ b/spec/system/admin/payments_spec.rb @@ -60,6 +60,7 @@ describe ' click_button "Update" expect(page).to have_content "Payments" + expect(page).to have_content "Payment has been successfully created!" order.reload expect(order.state).to eq "complete"