diff --git a/app/models/spree/order_contents.rb b/app/models/spree/order_contents.rb index 6c8e150e02..e295d3cc6c 100644 --- a/app/models/spree/order_contents.rb +++ b/app/models/spree/order_contents.rb @@ -38,6 +38,7 @@ module Spree line_item.price = variant.price order.line_items << line_item end + update_shipment order.reload line_item diff --git a/spec/models/spree/order_contents_spec.rb b/spec/models/spree/order_contents_spec.rb index b31d685ea3..d3a55fcf8b 100644 --- a/spec/models/spree/order_contents_spec.rb +++ b/spec/models/spree/order_contents_spec.rb @@ -175,6 +175,12 @@ RSpec.describe Spree::OrderContents do expect(line_item.max_quantity).to eq 3 expect(line_item.price).to eq variant.price end + + it "ensures shipments are updated" do + expect(order).to receive(:ensure_updated_shipments) + + subject.update_or_create(variant, { quantity: 2, max_quantity: 3 }) + end end describe "updating" do @@ -186,6 +192,12 @@ RSpec.describe Spree::OrderContents do expect(line_item.reload.quantity).to eq 3 expect(line_item.max_quantity).to eq 4 end + + it "ensures shipments are updated" do + expect(order).to receive(:ensure_updated_shipments) + + subject.update_or_create(variant, { quantity: 3, max_quantity: 4 }) + end end end end