diff --git a/lib/open_food_network/products_and_inventory_report.rb b/lib/open_food_network/products_and_inventory_report.rb index 487ccfa67d..1cb485efee 100644 --- a/lib/open_food_network/products_and_inventory_report.rb +++ b/lib/open_food_network/products_and_inventory_report.rb @@ -60,7 +60,11 @@ module OpenFoodNetwork def filter(variants) # NOTE: Ordering matters. # filter_to_order_cycle and filter_to_distributor return Arrays not Arel - filter_to_distributor filter_to_order_cycle filter_on_hand filter_to_supplier variants + filter_to_distributor filter_to_order_cycle filter_on_hand filter_to_supplier filter_not_deleted variants + end + + def filter_not_deleted(variants) + variants.not_deleted end def filter_on_hand(variants) diff --git a/spec/lib/open_food_network/products_and_inventory_report_spec.rb b/spec/lib/open_food_network/products_and_inventory_report_spec.rb index 9e449219e6..2e23919fe6 100644 --- a/spec/lib/open_food_network/products_and_inventory_report_spec.rb +++ b/spec/lib/open_food_network/products_and_inventory_report_spec.rb @@ -115,6 +115,12 @@ module OpenFoodNetwork product2 = create(:simple_product, supplier: supplier) subject.filter(Spree::Variant.scoped).sort.should == [product1.master, product2.master].sort end + it "should filter deleted products" do + product1 = create(:simple_product, supplier: supplier) + product2 = create(:simple_product, supplier: supplier) + product2.delete + subject.filter(Spree::Variant.scoped).sort.should == [product1.master].sort + end describe "based on report type" do it "returns only variants on hand" do product1 = create(:simple_product, supplier: supplier, on_hand: 99)