Skip to content
Snippets Groups Projects

Silent Mode: Block many outbound HTTP requests

Merged Michael Kozono requested to merge mk/silent-mode-block-outbound-gitlab-http into master
1 file
+ 48
44
Compare changes
  • Side-by-side
  • Inline
@@ -3,99 +3,103 @@
@@ -3,99 +3,103 @@
require 'spec_helper'
require 'spec_helper'
RSpec.describe Gitlab::SilentMode, feature_category: :geo_replication do
RSpec.describe Gitlab::SilentMode, feature_category: :geo_replication do
 
before do
 
stub_application_setting(silent_mode_enabled: silent_mode)
 
end
 
describe '.enabled?' do
describe '.enabled?' do
context 'when silent mode is enabled' do
context 'when silent mode is enabled' do
it 'returns true' do
let(:silent_mode) { true }
stub_application_setting(silent_mode_enabled: true)
expect(described_class.enabled?).to be_truthy
it { expect(described_class.enabled?).to be_truthy }
end
end
end
context 'when silent mode is disabled' do
context 'when silent mode is disabled' do
it 'returns false' do
let(:silent_mode) { false }
stub_application_setting(silent_mode_enabled: false)
expect(described_class.enabled?).to be_falsey
it { expect(described_class.enabled?).to be_falsey }
end
end
end
end
end
describe '.disabled?' do
describe '.disabled?' do
context 'when silent mode is enabled' do
context 'when silent mode is enabled' do
it 'returns false' do
let(:silent_mode) { true }
stub_application_setting(silent_mode_enabled: true)
expect(described_class.disabled?).to be_falsey
it { expect(described_class.disabled?).to be_falsey }
end
end
end
context 'when silent mode is disabled' do
context 'when silent mode is disabled' do
it 'returns true' do
let(:silent_mode) { false }
stub_application_setting(silent_mode_enabled: false)
expect(described_class.disabled?).to be_truthy
it { expect(described_class.disabled?).to be_truthy }
end
end
end
end
end
describe '.log_info' do
describe '.log_info' do
 
let(:log_args) do
 
{
 
message: 'foo',
 
bar: 'baz',
 
silent_mode_enabled: silent_mode
 
}
 
end
 
context 'when silent mode is enabled' do
context 'when silent mode is enabled' do
it 'logs to AppJsonLogger and adds the current state of silent mode' do
let(:silent_mode) { true }
stub_application_setting(silent_mode_enabled: true)
expect(Gitlab::AppJsonLogger).to receive(:info).with(
it 'logs to AppJsonLogger and adds the current state of silent mode' do
message: 'foo',
expect(Gitlab::AppJsonLogger).to receive(:info).with(log_args)
bar: 'baz',
silent_mode_enabled: true
)
described_class.log_info(message: 'foo', bar: 'baz')
described_class.log_info(message: 'foo', bar: 'baz')
end
end
end
end
context 'when silent mode is disabled' do
context 'when silent mode is disabled' do
it 'logs to AppJsonLogger and adds the current state of silent mode' do
let(:silent_mode) { false }
stub_application_setting(silent_mode_enabled: false)
expect(Gitlab::AppJsonLogger).to receive(:info).with(
it 'logs to AppJsonLogger and adds the current state of silent mode' do
message: 'foo',
expect(Gitlab::AppJsonLogger).to receive(:info).with(log_args)
bar: 'baz',
silent_mode_enabled: false
)
described_class.log_info(message: 'foo', bar: 'baz')
described_class.log_info(message: 'foo', bar: 'baz')
end
end
 
 
it 'raises if call already contains the state of silent mode' do
 
expect { described_class.log_info(log_args) }.to raise_error(RuntimeError, 'duplicate log key found')
 
end
end
end
end
end
describe '.log_debug' do
describe '.log_debug' do
 
let(:log_args) do
 
{
 
message: 'foo',
 
bar: 'baz',
 
silent_mode_enabled: silent_mode
 
}
 
end
 
context 'when silent mode is enabled' do
context 'when silent mode is enabled' do
it 'logs to AppJsonLogger and adds the current state of silent mode' do
let(:silent_mode) { true }
stub_application_setting(silent_mode_enabled: true)
expect(Gitlab::AppJsonLogger).to receive(:debug).with(
it 'logs to AppJsonLogger and adds the current state of silent mode' do
message: 'foo',
expect(Gitlab::AppJsonLogger).to receive(:debug).with(log_args)
bar: 'baz',
silent_mode_enabled: true
)
described_class.log_debug(message: 'foo', bar: 'baz')
described_class.log_debug(message: 'foo', bar: 'baz')
end
end
end
end
context 'when silent mode is disabled' do
context 'when silent mode is disabled' do
it 'logs to AppJsonLogger and adds the current state of silent mode' do
let(:silent_mode) { false }
stub_application_setting(silent_mode_enabled: false)
expect(Gitlab::AppJsonLogger).to receive(:debug).with(
it 'logs to AppJsonLogger and adds the current state of silent mode' do
message: 'foo',
expect(Gitlab::AppJsonLogger).to receive(:debug).with(log_args)
bar: 'baz',
silent_mode_enabled: false
)
described_class.log_debug(message: 'foo', bar: 'baz')
described_class.log_debug(message: 'foo', bar: 'baz')
end
end
 
 
it 'raises if call already contains the state of silent mode' do
 
expect { described_class.log_debug(log_args) }.to raise_error(RuntimeError, 'duplicate log key found')
 
end
end
end
end
end
end
end
Loading