mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-10 23:07:47 +00:00
Check the bulk invoice rendering order
As it turns out, our performance optimisation with `find_each` overrides or custom sorting.
This commit is contained in:
@@ -49,12 +49,25 @@ describe BulkInvoiceService do
|
||||
end
|
||||
|
||||
describe "#orders_from" do
|
||||
let(:renderer) { InvoiceRenderer.new }
|
||||
|
||||
before do
|
||||
allow(InvoiceRenderer).to receive(:new).and_return(renderer)
|
||||
end
|
||||
|
||||
it "orders with completed desc" do
|
||||
order_old = create(:order_with_distributor, :completed, completed_at: 2.minutes.ago)
|
||||
order_oldest = create(:order_with_distributor, :completed, completed_at: 4.minutes.ago)
|
||||
order_older = create(:order_with_distributor, :completed, completed_at: 3.minutes.ago)
|
||||
|
||||
expect(service.send(:orders_from, [order_older.id, order_old.id]).pluck(:id))
|
||||
.to eq([order_old.id, order_older.id])
|
||||
# This is the creation order provided `find_each` which invalidates
|
||||
# our intended sorting by `completed_at`:
|
||||
expect(renderer).to receive(:render_to_string).with(order_old).ordered.and_return("")
|
||||
expect(renderer).to receive(:render_to_string).with(order_oldest).ordered.and_return("")
|
||||
expect(renderer).to receive(:render_to_string).with(order_older).ordered.and_return("")
|
||||
|
||||
order_ids = [order_oldest, order_old, order_older].map(&:id)
|
||||
service.start_pdf_job_without_delay(order_ids)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user