summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/jobs/solidus_subscriptions/process_installment_job.rb2
-rw-r--r--lib/solidus_subscriptions/processing_error_handlers/rails_logger.rb12
-rw-r--r--spec/jobs/solidus_subscriptions/process_installment_job_spec.rb6
3 files changed, 12 insertions, 8 deletions
diff --git a/app/jobs/solidus_subscriptions/process_installment_job.rb b/app/jobs/solidus_subscriptions/process_installment_job.rb
index 53270e5..84d077a 100644
--- a/app/jobs/solidus_subscriptions/process_installment_job.rb
+++ b/app/jobs/solidus_subscriptions/process_installment_job.rb
@@ -7,7 +7,7 @@ module SolidusSubscriptions
def perform(installment)
Checkout.new(installment).process
rescue StandardError => e
- SolidusSubscriptions.configuration.processing_error_handler&.call(e)
+ SolidusSubscriptions.configuration.processing_error_handler&.call(e, installment)
end
end
end
diff --git a/lib/solidus_subscriptions/processing_error_handlers/rails_logger.rb b/lib/solidus_subscriptions/processing_error_handlers/rails_logger.rb
index d209123..d6fcf7e 100644
--- a/lib/solidus_subscriptions/processing_error_handlers/rails_logger.rb
+++ b/lib/solidus_subscriptions/processing_error_handlers/rails_logger.rb
@@ -3,21 +3,23 @@
module SolidusSubscriptions
module ProcessingErrorHandlers
class RailsLogger
- def self.call(exception)
- new(exception).call
+ def self.call(exception, installment = nil)
+ new(exception, installment).call
end
- def initialize(exception)
+ def initialize(exception, installment = nil)
@exception = exception
+ @installment = installment
end
def call
- Rails.logger.error exception.message
+ Rails.logger.error("Error processing installment with ID=#{installment.id}:") if installment
+ Rails.logger.error(exception.message)
end
private
- attr_reader :exception
+ attr_reader :exception, :installment
end
end
end
diff --git a/spec/jobs/solidus_subscriptions/process_installment_job_spec.rb b/spec/jobs/solidus_subscriptions/process_installment_job_spec.rb
index 7211cfe..767d650 100644
--- a/spec/jobs/solidus_subscriptions/process_installment_job_spec.rb
+++ b/spec/jobs/solidus_subscriptions/process_installment_job_spec.rb
@@ -12,7 +12,8 @@ RSpec.describe SolidusSubscriptions::ProcessInstallmentJob do
end
context 'when handling #perform errors' do
- it 'by default logs exception data without raising exceptions' do
+ it 'by default logs exception data without raising exceptions' do # rubocop:disable RSpec/MultipleExpectations
+ installment = build_stubbed(:installment)
checkout = instance_double(SolidusSubscriptions::Checkout).tap do |c|
allow(c).to receive(:process).and_raise('test error')
end
@@ -20,9 +21,10 @@ RSpec.describe SolidusSubscriptions::ProcessInstallmentJob do
allow(Rails.logger).to receive(:error)
expect {
- described_class.perform_now(build_stubbed(:installment))
+ described_class.perform_now(installment)
}.not_to raise_error
+ expect(Rails.logger).to have_received(:error).with("Error processing installment with ID=#{installment.id}:").ordered
expect(Rails.logger).to have_received(:error).with("test error").ordered
end