From b065d7db3661eb859523cae3dd09fe39d2c5b1c4 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 9 Aug 2013 15:25:50 +1000 Subject: [PATCH] When updating product distribution charge, skip line items that don't have a product distribution --- app/models/spree/order_decorator.rb | 2 +- spec/models/order_spec.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index 290fb45a83..7a01b408bb 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -64,7 +64,7 @@ Spree::Order.class_eval do def update_distribution_charge! line_items.each do |line_item| pd = product_distribution_for line_item - pd.ensure_correct_adjustment_for line_item + pd.ensure_correct_adjustment_for line_item if pd end end diff --git a/spec/models/order_spec.rb b/spec/models/order_spec.rb index eb3a968a5c..2cb7dc97e8 100644 --- a/spec/models/order_spec.rb +++ b/spec/models/order_spec.rb @@ -42,6 +42,15 @@ describe Spree::Order do subject.send(:update_distribution_charge!) end + it "skips line items that don't have a product distribution" do + line_item = double(:line_item) + subject.stub(:line_items) { [line_item] } + + subject.stub(:product_distribution_for) { nil } + + subject.send(:update_distribution_charge!) + end + it "looks up product distribution enterprise fees for a line item" do product = double(:product) variant = double(:variant, product: product)