From 818af476139ffdd2c1459cf2fbf8628d8a6ac791 Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Fri, 24 Nov 2017 13:38:37 +1100 Subject: [PATCH] Move rescue clause to process method This prevents a placement email from being sent unless the order is processed successfully --- app/jobs/standing_order_placement_job.rb | 4 ++-- spec/jobs/standing_order_placement_job_spec.rb | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/jobs/standing_order_placement_job.rb b/app/jobs/standing_order_placement_job.rb index 89b93bd5f8..199e4029a7 100644 --- a/app/jobs/standing_order_placement_job.rb +++ b/app/jobs/standing_order_placement_job.rb @@ -41,6 +41,8 @@ class StandingOrderPlacementJob move_to_completion(order) send_placement_email(order, changes) + rescue StateMachine::InvalidTransition + record_failure(order) end def cap_quantity_and_store_changes(order) @@ -58,8 +60,6 @@ class StandingOrderPlacementJob def move_to_completion(order) until order.completed? do order.next! end - rescue StateMachine::InvalidTransition - record_failure(order) end def unavailable_stock_lines_for(order) diff --git a/spec/jobs/standing_order_placement_job_spec.rb b/spec/jobs/standing_order_placement_job_spec.rb index 72c3cb09c4..133f18a70e 100644 --- a/spec/jobs/standing_order_placement_job_spec.rb +++ b/spec/jobs/standing_order_placement_job_spec.rb @@ -172,6 +172,7 @@ describe StandingOrderPlacementJob do before { allow(order).to receive(:next) { false } } it "records a failure and does not attempt to send an email" do + expect(job).to_not receive(:send_placement_email) expect(job).to receive(:record_failure).once job.send(:process, order) end