gitlab-ce/spec/lib/gitlab/database/postgres_autovacuum_activit...

43 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Database::PostgresAutovacuumActivity, type: :model, feature_category: :database do
include Database::DatabaseHelpers
it { is_expected.to be_a Gitlab::Database::SharedModel }
describe '.for_tables' do
subject { described_class.for_tables(tables) }
let(:tables) { %w[foo test] }
before do
swapout_view_for_table(:postgres_autovacuum_activity, connection: ApplicationRecord.connection)
# unrelated
create(:postgres_autovacuum_activity, table: 'bar')
tables.each do |table|
create(:postgres_autovacuum_activity, table: table)
end
expect(Gitlab::Database::LoadBalancing::Session.current).to receive(:use_primary).and_yield
end
it 'returns autovacuum activity for queries tables' do
expect(subject.map(&:table).sort).to eq(tables)
end
it 'executes the query' do
is_expected.to be_a Array
end
end
describe '.wraparound_prevention' do
subject { described_class.wraparound_prevention }
it { expect(subject.where_values_hash).to match(a_hash_including('wraparound_prevention' => true)) }
end
end