From 271d50e5aba691d096e23c2b4aa225a9d1a97eb0 Mon Sep 17 00:00:00 2001 From: cyrillefr Date: Wed, 24 Apr 2024 23:16:01 +0200 Subject: [PATCH] Fix Ship Order Button: modal should close itself - returns to the same processing for customer, invoices etc. that edit - need a bit of sleep in spec bc 2 tasks are asynchroneous --- app/reflexes/admin/orders_reflex.rb | 6 +++++- spec/system/admin/order_spec.rb | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/reflexes/admin/orders_reflex.rb b/app/reflexes/admin/orders_reflex.rb index b52136391e..40369edf19 100644 --- a/app/reflexes/admin/orders_reflex.rb +++ b/app/reflexes/admin/orders_reflex.rb @@ -21,7 +21,7 @@ module Admin def ship @order.send_shipment_email = false unless params[:send_shipment_email] if @order.ship - return set_param_for_controller if request.url.match?('edit') + return set_param_for_controller if Regexp.union(Constants::PATHS).match? request.url morph dom_id(@order), render(partial: "spree/admin/orders/table_row", locals: { order: @order.reload, success: true }) @@ -134,4 +134,8 @@ module Admin morph_admin_flashes end end + + module Constants + PATHS = %w[edit customer payments adjustments invoices return_authorizations].freeze + end end diff --git a/spec/system/admin/order_spec.rb b/spec/system/admin/order_spec.rb index aa7d4adfd8..134ce909d2 100644 --- a/spec/system/admin/order_spec.rb +++ b/spec/system/admin/order_spec.rb @@ -971,10 +971,10 @@ describe ' find_button("Confirm").click end - find_button("Cancel").click # closes modal as it is not automatic expect(page).to have_selector('.reveal-modal', visible: false) click_link('Order Details') unless subpage == 'Order Details' + sleep(0.5) # avoid flakyness expect(order.reload.shipped?).to be true expect(page).to have_text 'SHIPPED' expect(ActionMailer::MailDeliveryJob).to have_been_enqueued @@ -995,9 +995,10 @@ describe ' find_button("Confirm").click end - find_button("Cancel").click # closes modal as it is not automatic expect(page).to have_selector('.reveal-modal', visible: false) click_link('Order Details') unless subpage == 'Order Details' + + sleep(0.5) # avoir flakyness expect(order.reload.shipped?).to be true expect(page).to have_text 'SHIPPED' expect(ActionMailer::MailDeliveryJob).not_to have_been_enqueued