45 lines
1.2 KiB
Ruby
45 lines
1.2 KiB
Ruby
![]() |
require 'spec_helper'
|
||
|
|
||
|
describe 'Every Sidekiq worker' do
|
||
|
let(:workers) do
|
||
|
root = Rails.root.join('app', 'workers')
|
||
|
concerns = root.join('concerns').to_s
|
||
|
|
||
|
workers = Dir[root.join('**', '*.rb')].
|
||
|
reject { |path| path.start_with?(concerns) }
|
||
|
|
||
|
workers.map do |path|
|
||
|
ns = Pathname.new(path).relative_path_from(root).to_s.gsub('.rb', '')
|
||
|
|
||
|
ns.camelize.constantize
|
||
|
end
|
||
|
end
|
||
|
|
||
|
it 'does not use the default queue' do
|
||
|
workers.each do |worker|
|
||
|
expect(worker.sidekiq_options['queue'].to_s).not_to eq('default')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
it 'uses the cronjob queue when the worker runs as a cronjob' do
|
||
|
cron_workers = Settings.cron_jobs.
|
||
|
map { |job_name, options| options['job_class'].constantize }.
|
||
|
to_set
|
||
|
|
||
|
workers.each do |worker|
|
||
|
next unless cron_workers.include?(worker)
|
||
|
|
||
|
expect(worker.sidekiq_options['queue'].to_s).to eq('cronjob')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
it 'defines the queue in the Sidekiq configuration file' do
|
||
|
config = YAML.load_file(Rails.root.join('config', 'sidekiq_queues.yml').to_s)
|
||
|
queue_names = config[:queues].map { |(queue, _)| queue }.to_set
|
||
|
|
||
|
workers.each do |worker|
|
||
|
expect(queue_names).to include(worker.sidekiq_options['queue'].to_s)
|
||
|
end
|
||
|
end
|
||
|
end
|