jobs: extract an RetryOnTranscientErrors concern

This commit is contained in:
Pierre de La Morinerie 2021-04-29 11:55:43 +00:00
parent f45a7a83fe
commit 684af77e35
5 changed files with 57 additions and 18 deletions

View file

@ -0,0 +1,29 @@
RSpec.shared_examples 'a job retrying transient errors' do |job_class = described_class|
context 'when a transient network error is raised' do
ExconErrorJob = Class.new(job_class) do
def perform
raise Excon::Error::InternalServerError, 'msg'
end
end
it 'makes 5 attempts before raising the exception up' do
assert_performed_jobs 5 do
ExconErrorJob.perform_later rescue Excon::Error::InternalServerError
end
end
end
context 'when another type of error is raised' do
StandardErrorJob = Class.new(job_class) do
def perform
raise StandardError
end
end
it 'makes only 1 attempt before raising the exception up' do
assert_performed_jobs 1 do
StandardErrorJob.perform_later rescue StandardError
end
end
end
end