Fix poll expiration notify worker spec sometimes return error

This commit is contained in:
KMY 2023-08-09 10:25:44 +09:00
parent 3be796adf8
commit 88339b3657
4 changed files with 12 additions and 1 deletions

View file

@ -142,6 +142,8 @@ group :test do
# Stub web requests for specs # Stub web requests for specs
gem 'webmock', '~> 3.18' gem 'webmock', '~> 3.18'
gem 'rspec-retry', '>= 0.6.2'
end end
group :development do group :development do

View file

@ -632,6 +632,8 @@ GEM
rspec-expectations (~> 3.12) rspec-expectations (~> 3.12)
rspec-mocks (~> 3.12) rspec-mocks (~> 3.12)
rspec-support (~> 3.12) rspec-support (~> 3.12)
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-sidekiq (3.1.0) rspec-sidekiq (3.1.0)
rspec-core (~> 3.0, >= 3.0.0) rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0) sidekiq (>= 2.4.0)
@ -909,6 +911,7 @@ DEPENDENCIES
redis-namespace (~> 1.10) redis-namespace (~> 1.10)
rqrcode (~> 2.2) rqrcode (~> 2.2)
rspec-rails (~> 6.0) rspec-rails (~> 6.0)
rspec-retry (>= 0.6.2)
rspec-sidekiq (~> 3.1) rspec-sidekiq (~> 3.1)
rspec_chunked (~> 0.6) rspec_chunked (~> 0.6)
rubocop rubocop

View file

@ -1,5 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
require 'rspec/retry'
if ENV['DISABLE_SIMPLECOV'] != 'true' if ENV['DISABLE_SIMPLECOV'] != 'true'
require 'simplecov' require 'simplecov'
SimpleCov.start 'rails' do SimpleCov.start 'rails' do
@ -36,6 +38,10 @@ RSpec.configure do |config|
config.after :suite do config.after :suite do
FileUtils.rm_rf(Dir[Rails.root.join('spec', 'test_files')]) FileUtils.rm_rf(Dir[Rails.root.join('spec', 'test_files')])
end end
# for RSpec::Retry
config.verbose_retry = true
config.display_try_failure_messages = true
end end
def body_as_json def body_as_json

View file

@ -22,7 +22,7 @@ describe PollExpirationNotifyWorker do
end end
context 'when poll is not expired' do context 'when poll is not expired' do
it 'requeues job' do it 'requeues job', retry: 10 do
worker.perform(poll.id) worker.perform(poll.id)
expect(described_class.sidekiq_options_hash['lock']).to be :until_executing expect(described_class.sidekiq_options_hash['lock']).to be :until_executing
expect(described_class).to have_enqueued_sidekiq_job(poll.id).at(poll.expires_at + 5.minutes) expect(described_class).to have_enqueued_sidekiq_job(poll.id).at(poll.expires_at + 5.minutes)