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 'spec/lib/gitlab/sidekiq_status_spec.rb')
-rw-r--r--spec/lib/gitlab/sidekiq_status_spec.rb36
1 files changed, 31 insertions, 5 deletions
diff --git a/spec/lib/gitlab/sidekiq_status_spec.rb b/spec/lib/gitlab/sidekiq_status_spec.rb
index a555e6a828a..55e3885d257 100644
--- a/spec/lib/gitlab/sidekiq_status_spec.rb
+++ b/spec/lib/gitlab/sidekiq_status_spec.rb
@@ -2,7 +2,8 @@
require 'spec_helper'
-RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues, :clean_gitlab_redis_shared_state do
+RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues,
+ :clean_gitlab_redis_shared_state do
shared_examples 'tracking status in redis' do
describe '.set' do
it 'stores the job ID' do
@@ -53,6 +54,31 @@ RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues, :clean_gitlab_
end
end
+ describe '.expire' do
+ it 'refreshes the expiration time if key is present' do
+ described_class.set('123', 1.minute)
+ described_class.expire('123', 1.hour)
+
+ key = described_class.key_for('123')
+
+ with_redis do |redis|
+ expect(redis.exists?(key)).to eq(true)
+ expect(redis.ttl(key) > 5.minutes).to eq(true)
+ end
+ end
+
+ it 'does nothing if key is not present' do
+ described_class.expire('123', 1.minute)
+
+ key = described_class.key_for('123')
+
+ with_redis do |redis|
+ expect(redis.exists?(key)).to eq(false)
+ expect(redis.ttl(key)).to eq(-2)
+ end
+ end
+ end
+
describe '.all_completed?' do
it 'returns true if all jobs have been completed' do
expect(described_class.all_completed?(%w[123])).to eq(true)
@@ -133,11 +159,11 @@ RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues, :clean_gitlab_
context 'with multi-store feature flags turned on' do
def with_redis(&block)
- Gitlab::Redis::SidekiqStatus.with(&block)
+ Gitlab::Redis::SharedState.with(&block)
end
- it 'uses Gitlab::Redis::SidekiqStatus.with' do
- expect(Gitlab::Redis::SidekiqStatus).to receive(:with).and_call_original
+ it 'uses Gitlab::Redis::SharedState.with' do
+ expect(Gitlab::Redis::SharedState).to receive(:with).and_call_original
expect(Sidekiq).not_to receive(:redis)
described_class.job_status(%w[123 456 789])
@@ -158,7 +184,7 @@ RSpec.describe Gitlab::SidekiqStatus, :clean_gitlab_redis_queues, :clean_gitlab_
it 'uses Sidekiq.redis' do
expect(Sidekiq).to receive(:redis).and_call_original
- expect(Gitlab::Redis::SidekiqStatus).not_to receive(:with)
+ expect(Gitlab::Redis::SharedState).not_to receive(:with)
described_class.job_status(%w[123 456 789])
end