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

set_job_waiter_ttl_spec.rb « migrations « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: a051f8a535cf740230b7ac0c823ca9ba974595ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# frozen_string_literal: true

require 'spec_helper'
require_migration!

RSpec.describe SetJobWaiterTtl, :redis do
  it 'sets TTLs where necessary' do
    waiter_with_ttl = Gitlab::JobWaiter.new.key
    waiter_without_ttl = Gitlab::JobWaiter.new.key
    key_with_ttl = "foo:bar"
    key_without_ttl = "foo:qux"

    Gitlab::Redis::SharedState.with do |redis|
      redis.set(waiter_with_ttl, "zzz", ex: 2000)
      redis.set(waiter_without_ttl, "zzz")
      redis.set(key_with_ttl, "zzz", ex: 2000)
      redis.set(key_without_ttl, "zzz")

      described_class.new.up

      # This is the point of the migration. We know the migration uses a TTL of 21_600
      expect(redis.ttl(waiter_without_ttl)).to be > 20_000

      # Other TTL's should be untouched by the migration
      expect(redis.ttl(waiter_with_ttl)).to be_between(1000, 2000)
      expect(redis.ttl(key_with_ttl)).to be_between(1000, 2000)
      expect(redis.ttl(key_without_ttl)).to eq(-1)
    end
  end
end