c84a470bab
In Rails 5 DeliveryJob.queue_name may return Proc (probably if block is used for queue name definition). Instance method takes handles this already and returns string as expected.
36 lines
1.4 KiB
Ruby
36 lines
1.4 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe 'Every Sidekiq worker' do
|
|
it 'does not use the default queue' do
|
|
expect(Gitlab::SidekiqConfig.workers.map(&:queue)).not_to include('default')
|
|
end
|
|
|
|
it 'uses the cronjob queue when the worker runs as a cronjob' do
|
|
expect(Gitlab::SidekiqConfig.cron_workers.map(&:queue)).to all(start_with('cronjob:'))
|
|
end
|
|
|
|
it 'has its queue in app/workers/all_queues.yml', :aggregate_failures do
|
|
file_worker_queues = Gitlab::SidekiqConfig.worker_queues.to_set
|
|
|
|
worker_queues = Gitlab::SidekiqConfig.workers.map(&:queue).to_set
|
|
worker_queues << ActionMailer::DeliveryJob.new.queue_name
|
|
worker_queues << 'default'
|
|
|
|
missing_from_file = worker_queues - file_worker_queues
|
|
expect(missing_from_file).to be_empty, "expected #{missing_from_file.to_a.inspect} to be in app/workers/all_queues.yml"
|
|
|
|
unncessarily_in_file = file_worker_queues - worker_queues
|
|
expect(unncessarily_in_file).to be_empty, "expected #{unncessarily_in_file.to_a.inspect} not to be in app/workers/all_queues.yml"
|
|
end
|
|
|
|
it 'has its queue or namespace in config/sidekiq_queues.yml', :aggregate_failures do
|
|
config_queues = Gitlab::SidekiqConfig.config_queues.to_set
|
|
|
|
Gitlab::SidekiqConfig.workers.each do |worker|
|
|
queue = worker.queue
|
|
queue_namespace = queue.split(':').first
|
|
|
|
expect(config_queues).to include(queue).or(include(queue_namespace))
|
|
end
|
|
end
|
|
end
|