diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index 8519e52ff0..c3b5cb7356 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -83,7 +83,7 @@ Spree::Order.class_eval do def empty_with_clear_shipping_and_payments! empty_without_clear_shipping_and_payments! payments.clear - update_attributes(shipping_method_id: nil) + shipments.destroy_all end alias_method_chain :empty!, :clear_shipping_and_payments diff --git a/spec/models/spree/order_spec.rb b/spec/models/spree/order_spec.rb index e7c46c27cb..a27b9e91a8 100644 --- a/spec/models/spree/order_spec.rb +++ b/spec/models/spree/order_spec.rb @@ -383,18 +383,18 @@ describe Spree::Order do end describe "emptying the order" do - it "removes shipping method" do - subject.shipping_method = create(:shipping_method) + it "removes shipments" do + subject.shipments << create(:shipment) subject.save! subject.empty! - subject.shipping_method.should == nil + expect(subject.shipments).to be_empty end it "removes payments" do subject.payments << create(:payment) subject.save! subject.empty! - subject.payments.should == [] + expect(subject.payments).to be_empty end end