When removing variant from order, if not found then do nothing

This commit is contained in:
Rohan Mitchell
2016-04-08 11:17:54 +10:00
parent 6fbbe580c5
commit 792e17c385
2 changed files with 8 additions and 1 deletions

View File

@@ -99,7 +99,7 @@ Spree::Order.class_eval do
def remove_variant(variant)
line_items(:reload)
current_item = find_line_item_by_variant(variant)
current_item.destroy
current_item.andand.destroy
end

View File

@@ -366,6 +366,7 @@ describe Spree::Order do
let(:order) { create(:order) }
let(:v1) { create(:variant) }
let(:v2) { create(:variant) }
let(:v3) { create(:variant) }
before do
order.add_variant v1
@@ -376,6 +377,12 @@ describe Spree::Order do
order.remove_variant v1
order.line_items(:reload).map(&:variant).should == [v2]
end
it "does nothing when there is no matching line item" do
expect do
order.remove_variant v3
end.to change(order.line_items(:reload), :count).by(0)
end
end
describe "emptying the order" do