Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb')
-rw-r--r--vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb41
1 files changed, 38 insertions, 3 deletions
diff --git a/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb b/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
index 84a0203b683..d6701c7c7e1 100644
--- a/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
+++ b/vendor/gems/sidekiq-reliable-fetch/spec/semi_reliable_fetch_spec.rb
@@ -7,10 +7,45 @@ describe Sidekiq::SemiReliableFetch do
include_examples 'a Sidekiq fetcher'
describe '#retrieve_work' do
- context 'timeout config' do
- let(:queues) { ['stuff_to_do'] }
- let(:fetcher) { described_class.new(queues: queues) }
+ let(:queues) { ['stuff_to_do'] }
+ let(:options) { { queues: queues } }
+ let(:fetcher) { described_class.new(options) }
+
+ context 'namespace config' do
+ let(:options) { { queues: queues, namespace: 'namespaced' } }
+
+ before do
+ Sidekiq.redis do |conn|
+ conn.rpush('queue:stuff_to_do', 'msg1')
+ conn.rpush('namespaced:queue:stuff_to_do', 'msg2')
+ end
+ end
+
+ it 'runs brpop on both namespaced and non-namespaced' do
+ jobs = (1..2).map { fetcher.retrieve_work&.job }
+
+ expect(jobs).to match_array(['msg1', 'msg2'])
+ end
+ end
+ context 'alternative_store config' do
+ let(:store) { Sidekiq::RedisConnection.create(url: REDIS_URL, size: 10) }
+ let(:options) { { queues: queues, alternative_store: store } }
+
+ it 'connects using alternative store' do
+ Sidekiq.redis do |connection|
+ expect(connection).not_to receive(:brpop)
+ end
+
+ store.with do |connection|
+ expect(connection).to receive(:brpop).with("queue:stuff_to_do", { timeout: 2 }).once.and_call_original
+ end
+
+ fetcher.retrieve_work
+ end
+ end
+
+ context 'timeout config' do
before do
stub_env('SIDEKIQ_SEMI_RELIABLE_FETCH_TIMEOUT', timeout)
end