From 2d4e506900ac5e888bb3bb42e38e1eb572c1cb96 Mon Sep 17 00:00:00 2001 From: Robert Gradowski Date: Wed, 23 Oct 2024 23:10:50 +0200 Subject: [PATCH] changes in spec --- spec/sidekiq_poison_pill_remedy_spec.rb | 26 ++++++++++++++++--------- spec/spec_helper.rb | 5 +++-- spec/support/my_job.rb | 10 ++++++++-- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/spec/sidekiq_poison_pill_remedy_spec.rb b/spec/sidekiq_poison_pill_remedy_spec.rb index 63a78cf..20cbef6 100644 --- a/spec/sidekiq_poison_pill_remedy_spec.rb +++ b/spec/sidekiq_poison_pill_remedy_spec.rb @@ -5,30 +5,38 @@ require 'sidekiq' require 'sidekiq-poison-pill-remedy' require 'support/my_job' +require 'sidekiq/api' RSpec.describe SidekiqPoisonPillRemedy do - let(:job_args) { ['test_argument'] } - let(:jid) { MyJob.perform_async(*job_args) } - before do Sidekiq::Testing.fake! end - it 'moves job to poison_pill queue and logs message' do - begin - MyJob.new.perform('fail') - rescue StandardError - nil - end + puts '1' + jid = MyJob.perform_async('fail') + puts "Jobs in Queue: #{Sidekiq::Queue.new.size}" + puts "DeadSet size: #{Sidekiq::DeadSet.new.size}" + puts '2' + + MyJob.drain + puts '3' job = Sidekiq::DeadSet.new.find_job(jid) + puts '4' + puts "Job JID: #{jid}" + puts "DeadSet size: #{Sidekiq::DeadSet.new.size}" expect(job).not_to be_nil expect(job.klass).to eq('MyJob') SidekiqPoisonPillRemedy.remedy.call(nil, job) + puts "DeadSet jobs: #{Sidekiq::DeadSet.new.size}" + puts "Queue jobs: #{Sidekiq::Queue.new.size}" + puts "Job JID: #{jid}" + poison_pill_job = Sidekiq::Queue.new('poison_pill').find_job(job.jid) expect(poison_pill_job).not_to be_nil + puts "Poison Pill Job JID: #{poison_pill_job.jid}" end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5b8cf22..439897b 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -7,7 +7,10 @@ require 'sidekiq' require 'sidekiq-poison-pill-remedy' +Dir[File.join(__dir__, 'support', '**', '*.rb')].each { |f| require f } + RSpec.configure do |config| + Sidekiq::Testing.inline! # Enable flags like --only-failures and --next-failure config.example_status_persistence_file_path = '.rspec_status' @@ -21,6 +24,4 @@ config.before(:all) do ENV['REDIS_URL'] ||= 'redis://localhost:6379/1' end - - Dir[File.join(__dir__, 'support', '**', '*.rb')].each { |f| require f } end diff --git a/spec/support/my_job.rb b/spec/support/my_job.rb index d2cf526..e8b2b9a 100644 --- a/spec/support/my_job.rb +++ b/spec/support/my_job.rb @@ -1,7 +1,13 @@ class MyJob - include Sidekiq::Worker + include Sidekiq::Job + sidekiq_options retry: 0 def perform(arg) - raise 'An error occurred!' if arg == 'fail' + if arg == 'fail' + Sidekiq.logger.error('Forced failure for testing') + + else + 'surprise' + end end end