40 lines
906 B
Ruby
40 lines
906 B
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.shared_context 'unique ips sign in limit' do
|
|
include StubENV
|
|
let(:request_context) { Gitlab::RequestContext.instance }
|
|
|
|
before do
|
|
Gitlab::Redis::Cache.with(&:flushall)
|
|
Gitlab::Redis::Queues.with(&:flushall)
|
|
Gitlab::Redis::SharedState.with(&:flushall)
|
|
end
|
|
|
|
before do
|
|
stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false')
|
|
|
|
Gitlab::CurrentSettings.update!(
|
|
unique_ips_limit_enabled: true,
|
|
unique_ips_limit_time_window: 10000
|
|
)
|
|
|
|
# Make sure we're working with the same reqeust context everywhere
|
|
allow(Gitlab::RequestContext).to receive(:instance).and_return(request_context)
|
|
end
|
|
|
|
def change_ip(ip)
|
|
allow(request_context).to receive(:client_ip).and_return(ip)
|
|
end
|
|
|
|
def request_from_ip(ip)
|
|
change_ip(ip)
|
|
request
|
|
response
|
|
end
|
|
|
|
def operation_from_ip(ip)
|
|
change_ip(ip)
|
|
operation
|
|
end
|
|
end
|