summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/database/indexing_exclusive_lease_guard_spec.rb
blob: ddc9cdee92f923b91ca67c55b3679c31f3e0de45 (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
31
32
33
34
35
36
37
38
39
40
# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Gitlab::Database::IndexingExclusiveLeaseGuard, feature_category: :database do
  let(:helper_class) do
    Class.new do
      include Gitlab::Database::IndexingExclusiveLeaseGuard

      attr_reader :connection

      def initialize(connection)
        @connection = connection
      end
    end
  end

  describe '#lease_key' do
    let(:helper) { helper_class.new(connection) }
    let(:lease_key) { "gitlab/database/indexing/actions/#{database_name}" }

    context 'with CI database connection' do
      let(:connection) { Ci::ApplicationRecord.connection }
      let(:database_name) { Gitlab::Database::CI_DATABASE_NAME }

      before do
        skip_if_multiple_databases_not_setup
      end

      it { expect(helper.lease_key).to eq(lease_key) }
    end

    context 'with MAIN database connection' do
      let(:connection) { ApplicationRecord.connection }
      let(:database_name) { Gitlab::Database::MAIN_DATABASE_NAME }

      it { expect(helper.lease_key).to eq(lease_key) }
    end
  end
end