Files
gitlab-foss/spec/lib/gitlab/bullet_spec.rb
2025-06-02 15:11:59 +00:00

82 lines
2.0 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Bullet, feature_category: :shared do
context 'with bullet installed' do
around do |example|
bullet_enabled = ::Bullet.enabled?
example.run
::Bullet.enable = bullet_enabled
end
describe '#enabled?' do
it 'delegates to Gitlab.config.bullet.enabled' do
allow(Gitlab.config.bullet).to receive(:enabled).and_return('foo')
expect(described_class.enabled?).to eq('foo')
end
end
describe '#extra_logging_enabled?' do
context 'with environment variable set' do
before do
stub_env('ENABLE_BULLET', 'true')
end
it 'is true' do
expect(described_class.extra_logging_enabled?).to be(true)
end
end
context 'with environment variable not set' do
before do
stub_env('ENABLE_BULLET', nil)
end
it 'is false' do
expect(described_class.extra_logging_enabled?).to be(false)
end
end
end
describe '#configure_bullet?' do
before do
allow(Gitlab.config.bullet).to receive(:enabled).and_return(true)
end
context 'with Bullet not defined' do
before do
allow(Object).to receive(:const_defined?).with(:Bullet).and_return(false)
end
it 'is not configurable' do
expect(described_class.configure_bullet?).to be(false)
end
end
context 'with Bullet defined' do
before do
stub_const('::Bullet', class_double(::Bullet))
end
context 'with config enabled' do
it 'is configurable' do
expect(described_class).to be_configure_bullet
end
end
context 'with config disabled' do
before do
allow(Gitlab.config.bullet).to receive(:enabled).and_return(false)
end
it 'is not configurable' do
expect(described_class).not_to be_configure_bullet
end
end
end
end
end
end