From 0cfe7fdc45eccd70453ae65e9cbb170d5f4b3f7b Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 12 May 2021 11:40:56 +0100 Subject: [PATCH] Move required logic into OrderContents and improve spec --- app/controllers/admin/bulk_line_items_controller.rb | 3 --- app/models/spree/order_contents.rb | 2 ++ spec/controllers/admin/bulk_line_items_controller_spec.rb | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/bulk_line_items_controller.rb b/app/controllers/admin/bulk_line_items_controller.rb index a4ff5b1676..91973448e9 100644 --- a/app/controllers/admin/bulk_line_items_controller.rb +++ b/app/controllers/admin/bulk_line_items_controller.rb @@ -33,9 +33,6 @@ module Admin # and https://www.postgresql.org/docs/current/static/sql-select.html#SQL-FOR-UPDATE-SHARE order.with_lock do if order.contents.update_item(@line_item, line_item_params) - order.update_line_item_fees! @line_item - order.update_order_fees! - order.update_order! render body: nil, status: :no_content # No Content, does not trigger ng resource auto-update else render json: { errors: @line_item.errors }, status: :precondition_failed diff --git a/app/models/spree/order_contents.rb b/app/models/spree/order_contents.rb index 15a9030706..5a14d41642 100644 --- a/app/models/spree/order_contents.rb +++ b/app/models/spree/order_contents.rb @@ -56,6 +56,8 @@ module Spree def update_item(line_item, params) if line_item.update_attributes(params) + order.update_line_item_fees! line_item + order.update_order_fees! if order.completed? discard_empty_line_items order.ensure_updated_shipments update_order diff --git a/spec/controllers/admin/bulk_line_items_controller_spec.rb b/spec/controllers/admin/bulk_line_items_controller_spec.rb index f376650554..853050b48f 100644 --- a/spec/controllers/admin/bulk_line_items_controller_spec.rb +++ b/spec/controllers/admin/bulk_line_items_controller_spec.rb @@ -209,10 +209,10 @@ describe Admin::BulkLineItemsController, type: :controller do allow(Spree::LineItem) .to receive(:find).with(line_item1.id.to_s).and_return(line_item1) - expect(line_item1.order).to receive(:reload).with(lock: true) + expect(line_item1.order).to receive(:with_lock).and_call_original expect(line_item1.order).to receive(:update_line_item_fees!) expect(line_item1.order).to receive(:update_order_fees!) - expect(line_item1.order).to receive(:update_order!) + expect(line_item1.order).to receive(:update_order!).once spree_put :update, params end