demarches-normaliennes/spec/jobs/application_job_spec.rb
2020-09-09 09:08:48 +00:00

35 lines
989 B
Ruby

include ActiveJob::TestHelper
RSpec.describe ApplicationJob, type: :job do
describe 'perform' do
before do
allow(Rails.logger).to receive(:info)
end
it 'logs start time and end time' do
perform_enqueued_jobs { ChildJob.perform_later }
expect(Rails.logger).to have_received(:info).with(/started at/).once
expect(Rails.logger).to have_received(:info).with(/ended at/).once
end
end
context 'when ::Excon::Error::BadRequest is raised' do
# https://api.rubyonrails.org/classes/ActiveJob/Exceptions/ClassMethods.html#method-i-retry_on
# retry on will try 5 times and then bubble up the error
it 'makes 5 attempts' do
assert_performed_jobs 5 do
ExconErrJob.perform_later rescue ::Excon::Error::BadRequest
end
end
end
class ChildJob < ApplicationJob
def perform; end
end
class ExconErrJob < ApplicationJob
def perform
raise ::Excon::Error::BadRequest.new('bad request')
end
end
end