mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-18 04:39:14 +00:00
Uninitialised but recently updated order_cycles also trigger StandingOrderPlacementJob
This commit is contained in:
@@ -12,9 +12,9 @@ class OrderCycleOpenCloseJob
|
||||
def recently_opened_order_cycles
|
||||
return @recently_opened_order_cycles unless @recently_opened_order_cycles.nil?
|
||||
@recently_opened_order_cycles =
|
||||
OrderCycle.where(
|
||||
'orders_open_at BETWEEN (?) AND (?) AND standing_orders_placed_at IS NULL',
|
||||
10.minutes.ago, Time.now
|
||||
OrderCycle.active.where(
|
||||
'standing_orders_placed_at IS NULL AND (orders_open_at BETWEEN (?) AND (?) OR updated_at BETWEEN (?) AND (?))',
|
||||
10.minutes.ago, Time.now, 10.minutes.ago, Time.now
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -4,15 +4,16 @@ describe OrderCycleOpenCloseJob do
|
||||
let!(:job) { OrderCycleOpenCloseJob.new }
|
||||
|
||||
describe "finding recently opened order cycles" do
|
||||
let!(:order_cycle1) { create(:simple_order_cycle, orders_open_at: 11.minutes.ago) }
|
||||
let!(:order_cycle2) { create(:simple_order_cycle, orders_open_at: 9.minutes.ago) }
|
||||
let!(:order_cycle3) { create(:simple_order_cycle, orders_open_at: 2.minutes.ago, standing_orders_placed_at: 1.minute.ago ) }
|
||||
let!(:order_cycle4) { create(:simple_order_cycle, orders_open_at: 1.minute.from_now) }
|
||||
let!(:order_cycle1) { create(:simple_order_cycle, orders_open_at: 11.minutes.ago, updated_at: 11.minutes.ago) }
|
||||
let!(:order_cycle2) { create(:simple_order_cycle, orders_open_at: 11.minutes.ago, updated_at: 9.minutes.ago) }
|
||||
let!(:order_cycle3) { create(:simple_order_cycle, orders_open_at: 9.minutes.ago, updated_at: 9.minutes.ago) }
|
||||
let!(:order_cycle4) { create(:simple_order_cycle, orders_open_at: 2.minutes.ago, standing_orders_placed_at: 1.minute.ago ) }
|
||||
let!(:order_cycle5) { create(:simple_order_cycle, orders_open_at: 1.minute.from_now) }
|
||||
|
||||
it "only returns unprocessed order cycles whose orders_open_at date is within the past 10 minutes" do
|
||||
it "returns unprocessed order cycles whose orders_open_at or updated_at date is within the past 10 minutes" do
|
||||
order_cycles = job.send(:recently_opened_order_cycles)
|
||||
expect(order_cycles).to include order_cycle2
|
||||
expect(order_cycles).to_not include order_cycle1, order_cycle3, order_cycle4
|
||||
expect(order_cycles).to include order_cycle2, order_cycle3
|
||||
expect(order_cycles).to_not include order_cycle1, order_cycle4, order_cycle5
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user