OrderCycleManagementReport sets default date range before querying for orders

This commit is contained in:
JASON KNOEPFLER
2019-09-13 17:15:57 -07:00
parent ecf336fe51
commit 0f55049eda
2 changed files with 17 additions and 1 deletions

View File

@@ -2,9 +2,10 @@ require 'open_food_network/user_balance_calculator'
module OpenFoodNetwork
class OrderCycleManagementReport
DEFAULT_DATE_INTERVAL = 1.month
attr_reader :params
def initialize(user, params = {}, render_table = false)
@params = params
@params = sanitize_params(params)
@user = user
@render_table = render_table
end
@@ -133,5 +134,12 @@ module OpenFoodNetwork
customer = Customer.where(email: email).first
customer.nil? ? "" : customer.code
end
def sanitize_params(params)
params[:q] ||= {}
params[:q][:completed_at_gt] ||= Time.zone.today - DEFAULT_DATE_INTERVAL
params[:q][:completed_at_lt] ||= Time.zone.today
params
end
end
end

View File

@@ -24,6 +24,14 @@ module OpenFoodNetwork
o2 = create(:order, completed_at: 1.day.ago)
expect(subject.orders).to eq([o2])
end
context "default date range" do
it "fetches orders completed in the past month" do
o1 = create(:order, completed_at: Time.zone.today - OrderCycleManagementReport::DEFAULT_DATE_INTERVAL - 1.day)
o2 = create(:order, completed_at: Time.zone.today - OrderCycleManagementReport::DEFAULT_DATE_INTERVAL + 1.day)
expect(subject.orders).to eq([o2])
end
end
end
end