diff --git a/spec/services/bulk_invoice_service_spec.rb b/spec/services/bulk_invoice_service_spec.rb index 52fe085288..1ff3d9edab 100644 --- a/spec/services/bulk_invoice_service_spec.rb +++ b/spec/services/bulk_invoice_service_spec.rb @@ -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