diff --git a/app/jobs/complete_backorder_job.rb b/app/jobs/complete_backorder_job.rb index 3126c4c513..db177c5cf5 100644 --- a/app/jobs/complete_backorder_job.rb +++ b/app/jobs/complete_backorder_job.rb @@ -19,6 +19,9 @@ class CompleteBackorderJob < ApplicationJob # someone else's order. def perform(user, distributor, order_cycle, order_id) order = FdcBackorderer.new(user, nil).find_order(order_id) + + return if order&.lines.blank? + urls = FdcUrlBuilder.new(order.lines[0].offer.offeredItem.semanticId) variants = order_cycle.variants_distributed_by(distributor) diff --git a/spec/jobs/complete_backorder_job_spec.rb b/spec/jobs/complete_backorder_job_spec.rb index 22bb7862e9..7e575a3380 100644 --- a/spec/jobs/complete_backorder_job_spec.rb +++ b/spec/jobs/complete_backorder_job_spec.rb @@ -115,5 +115,21 @@ RSpec.describe CompleteBackorderJob do }.to enqueue_mail(BackorderMailer, :backorder_incomplete) .and raise_error VCR::Errors::UnhandledHTTPRequestError end + + it "skips empty backorders" do + user = nil + distributor = nil + order_cycle = nil + order_id = nil + backorder = DataFoodConsortium::Connector::Order.new( + order_id, orderStatus: "dfc-v:Held" + ) + expect_any_instance_of(FdcBackorderer) + .to receive(:find_order).and_return(backorder) + + expect { + subject.perform(user, distributor, order_cycle, order_id) + }.not_to raise_error + end end end