Skip to content

Commit

Permalink
Merge pull request #12376 from cyrillefr/MakeShipOrderButtonWorksOnPa…
Browse files Browse the repository at this point in the history
…geOrderDetails

Fix Ship Order menu choice not working
  • Loading branch information
filipefurtad0 committed May 15, 2024
2 parents 39ce316 + 6575ad7 commit 59e04cc
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 15 deletions.
1 change: 1 addition & 0 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ Metrics/ClassLength:
- 'app/models/spree/user.rb'
- 'app/models/spree/variant.rb'
- 'app/models/spree/zone.rb'
- 'app/reflexes/admin/orders_reflex.rb'
- 'app/reflexes/products_reflex.rb'
- 'app/serializers/api/cached_enterprise_serializer.rb'
- 'app/serializers/api/enterprise_shopfront_serializer.rb'
Expand Down
4 changes: 4 additions & 0 deletions app/helpers/spree/admin/orders_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ def order_links(order)
links
end

def order_shipment_ready?(order)
order.ready_to_ship?
end

private

def complete_order_links(order)
Expand Down
3 changes: 2 additions & 1 deletion app/reflexes/admin/orders_reflex.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ def capture
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')
paths = %w[edit customer payments adjustments invoices return_authorizations].freeze
return set_param_for_controller if Regexp.union(paths).match? request.url

morph dom_id(@order), render(partial: "spree/admin/orders/table_row",
locals: { order: @order.reload, success: true })
Expand Down
3 changes: 3 additions & 0 deletions app/views/spree/admin/shared/_order_links.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,6 @@
%span=link[:name]
= render 'spree/admin/shared/custom-confirm'
- if order_shipment_ready?(@order)
%form
= render ShipOrderComponent.new(order: @order)
35 changes: 21 additions & 14 deletions spec/system/admin/order_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -968,13 +968,19 @@ def new_order_with_distribution(distributor, order_cycle)
within ".reveal-modal" do
expect(page).to have_checked_field('Send a shipment/pick up ' \
'notification email to the customer.')
expect {
find_button("Confirm").click
}.to enqueue_job(ActionMailer::MailDeliveryJob).exactly(:once)
find_button("Confirm").click
end

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
.exactly(:once)
.with("Spree::ShipmentMailer", "shipped_email", "deliver_now",
{ args: [order.shipment.id, { delivery: true }] })
end

it "ships the order without sending email" do
Expand All @@ -986,26 +992,27 @@ def new_order_with_distribution(distributor, order_cycle)

within ".reveal-modal" do
uncheck 'Send a shipment/pick up notification email to the customer.'
expect {
find_button("Confirm").click
}.not_to enqueue_job(ActionMailer::MailDeliveryJob)
find_button("Confirm").click
end

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
.with(array_including("Spree::ShipmentMailer"))
end
end
end

it_behaves_like "ship order from dropdown", "Order Details"
context "pending examples" do
before { pending("#12369") }
it_behaves_like "ship order from dropdown", "Customer Details"
it_behaves_like "ship order from dropdown", "Payments"
it_behaves_like "ship order from dropdown", "Adjustments"
it_behaves_like "ship order from dropdown", "Invoices"
it_behaves_like "ship order from dropdown", "Return Authorizations"
end
it_behaves_like "ship order from dropdown", "Customer Details"
it_behaves_like "ship order from dropdown", "Payments"
it_behaves_like "ship order from dropdown", "Adjustments"
it_behaves_like "ship order from dropdown", "Invoices"
it_behaves_like "ship order from dropdown", "Return Authorizations"
end

context "when an included variant has been deleted" do
Expand Down

0 comments on commit 59e04cc

Please sign in to comment.