diff --git a/app/controllers/api/v0/shipments_controller.rb b/app/controllers/api/v0/shipments_controller.rb index 0d92b5915a..33706ff971 100644 --- a/app/controllers/api/v0/shipments_controller.rb +++ b/app/controllers/api/v0/shipments_controller.rb @@ -34,7 +34,9 @@ module Api @shipment.fee_adjustment.open end - @shipment.update(shipment_params) + if @shipment.update(shipment_params) + @order.updater.update_totals_and_states + end if unlock == 'yes' @shipment.fee_adjustment.close diff --git a/spec/controllers/api/v0/shipments_controller_spec.rb b/spec/controllers/api/v0/shipments_controller_spec.rb index 86e269cb17..a5bde9b708 100644 --- a/spec/controllers/api/v0/shipments_controller_spec.rb +++ b/spec/controllers/api/v0/shipments_controller_spec.rb @@ -225,12 +225,7 @@ describe Api::V0::ShipmentsController, type: :controller do expect(order.shipment.shipping_method).to eq shipping_method2 expect(order.shipment.cost).to eq 20 - expect(order.total).to eq 60 # order totals have not been updated - expect(order.payment_state).to eq "paid" # payment state not updated - - order.update! # Simulate "Update and recalculate fees" button - - expect(order.total).to eq 70 # order total has now changed + expect(order.total).to eq 70 # item total is 50, shipping cost is 20 expect(order.payment_state).to eq "balance_due" # total changed, payment is due end end