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
|