From c20c9e2e78bd79fe1eb0d3c869a076746a392aa7 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Fri, 10 Nov 2017 10:07:38 +1100 Subject: [PATCH] Use the rails logger instead of Bugsnag --- app/jobs/standing_order_placement_job.rb | 22 ++++++++----------- .../jobs/standing_order_placement_job_spec.rb | 9 ++++++++ 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/app/jobs/standing_order_placement_job.rb b/app/jobs/standing_order_placement_job.rb index 956584d858..0e6ee85c9c 100644 --- a/app/jobs/standing_order_placement_job.rb +++ b/app/jobs/standing_order_placement_job.rb @@ -42,19 +42,9 @@ class StandingOrderPlacementJob end def move_to_completion(order) - until order.completed? - unless order.next! - Bugsnag.notify(RuntimeError.new("StandingOrderPlacementError"), { - job: "StandingOrderPlacement", - error: "Cannot process order due to errors", - data: { - order_number: order.number, - errors: order.errors.full_messages - } - }) - break - end - end + until order.completed? do order.next! end + rescue StateMachine::InvalidTransition + log_completion_issue(order) end def unavailable_stock_lines_for(order) @@ -73,4 +63,10 @@ class StandingOrderPlacementJob def send_empty_email(order, changes) Spree::OrderMailer.standing_order_email(order.id, 'empty', changes).deliver end + + def log_completion_issue(order) + line1 = "StandingOrderPlacementError: Cannot process order #{order.number} due to errors" + line2 = "Errors: #{order.errors.full_messages.join(", ")}" + Rails.logger.info("#{line1}\n#{line2}") + end end diff --git a/spec/jobs/standing_order_placement_job_spec.rb b/spec/jobs/standing_order_placement_job_spec.rb index aef6db69aa..7c0cbad254 100644 --- a/spec/jobs/standing_order_placement_job_spec.rb +++ b/spec/jobs/standing_order_placement_job_spec.rb @@ -166,6 +166,15 @@ describe StandingOrderPlacementJob do expect{job.send(:process, order)}.to_not enqueue_job ConfirmOrderJob expect(job).to have_received(:send_placement_email).with(order, anything).once end + + context "when progression of the order fails" do + before { allow(order).to receive(:next) { false } } + + it "logs an error" do + expect(Rails.logger).to receive(:info) + job.send(:process, order) + end + end end end end