move advance_to_payment on order's details page from edit to update

This commit is contained in:
Mohamed ABDELLANI
2023-06-05 11:30:16 +01:00
parent a785b4d5e0
commit 77554e21fc
2 changed files with 17 additions and 11 deletions

View File

@@ -44,8 +44,6 @@ module Spree
def edit
@order.shipments.map(&:refresh_rates)
OrderWorkflow.new(@order).advance_to_payment
@order.errors.clear
end
@@ -53,6 +51,7 @@ module Spree
on_update
if params[:set_distribution_step] && @order.update(order_params)
OrderWorkflow.new(@order).advance_to_payment if @order.state.in? ["cart", "address", "delivery"]
return redirect_to spree.admin_order_customer_path(@order)
end
@@ -65,6 +64,7 @@ module Spree
return redirect_to spree.edit_admin_order_path(@order)
end
OrderWorkflow.new(@order).advance_to_payment if @order.state.in? ["cart", "address", "delivery"]
if @order.complete?
redirect_to spree.edit_admin_order_path(@order)
else

View File

@@ -8,12 +8,6 @@ describe Spree::Admin::OrdersController, type: :controller do
before { controller_login_as_admin }
it "advances the order state" do
expect {
spree_get :edit, id: order
}.to change { order.reload.state }.from("cart").to("payment")
end
describe "view" do
render_views
@@ -229,9 +223,19 @@ describe Spree::Admin::OrdersController, type: :controller do
end
context "with line items" do
let!(:distributor){ create(:distributor_enterprise) }
let!(:shipment){ create(:shipment) }
let!(:order_cycle){ create(:simple_order_cycle, distributors: [distributor], variants: [line_item.variant]) }
before do
line_item.product.supplier = distributor
order.shipments << shipment
order.line_items << line_item
order.save
distributor.shipping_methods << shipment.shipping_method
order.select_shipping_method(shipment.shipping_method.id)
order.save!
params[:order][:distributor_id] = distributor.id
params[:order][:order_cycle_id] = order_cycle.id
params[:order][:line_items_attributes] =
[{ id: line_item.id, quantity: line_item.quantity }]
end
@@ -239,9 +243,11 @@ describe Spree::Admin::OrdersController, type: :controller do
context "and no errors" do
it "updates distribution charges and redirects to payments page" do
expect_any_instance_of(Spree::Order).to receive(:recreate_all_fees!)
allow_any_instance_of(Spree::Order).to receive(:ensure_available_shipping_rates).and_return(true)
spree_put :update, params
expect {
spree_put :update, params
}.to change { order.reload.state }.from("cart").to("payment")
expect(response).to redirect_to spree.admin_order_payments_path(order)
end
end