Fixing up a bug in the aggregate filtering

This commit is contained in:
Will Marshall
2013-11-21 14:53:17 +11:00
parent b101a37dad
commit beb6110bc3
2 changed files with 17 additions and 1 deletions

View File

@@ -42,7 +42,9 @@ module OpenFoodNetwork
end
def filter(variants)
filter_on_hand filter_to_supplier filter_to_distributor filter_to_order_cycle 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
end
def filter_on_hand(variants)

View File

@@ -130,6 +130,20 @@ module OpenFoodNetwork
subject.stub(:params).and_return(order_cycle_id: order_cycle.id)
subject.filter(variants).should == [product1.master]
end
it "should do all the filters at once" do
distributor = create(:distributor_enterprise)
product1 = create(:simple_product, supplier: supplier, distributors: [distributor])
product2 = create(:simple_product, supplier: supplier, distributors: [distributor])
order_cycle = create(:simple_order_cycle, suppliers: [supplier], distributors: [distributor], variants: [product1.master])
subject.stub(:params).and_return(
order_cycle_id: order_cycle.id,
supplier_id: supplier.id,
distributor_id: distributor.id,
report_type: 'inventory')
subject.filter(variants)
end
end
end
end