35 lines
712 B
Ruby
35 lines
712 B
Ruby
require "spec_helper"
|
|
|
|
describe 'RackAttackHelpers' do
|
|
describe 'reset' do
|
|
let(:discriminator) { 'test-key'}
|
|
let(:maxretry) { 5 }
|
|
let(:period) { 1.minute }
|
|
let(:options) { { findtime: period, bantime: 60, maxretry: maxretry } }
|
|
|
|
def do_filter
|
|
for i in 1..maxretry - 1 do
|
|
status = Rack::Attack::Allow2Ban.filter(discriminator, options) { true }
|
|
expect(status).to eq(false)
|
|
end
|
|
end
|
|
|
|
def do_reset
|
|
Rack::Attack::Allow2Ban.reset(discriminator, options)
|
|
end
|
|
|
|
before do
|
|
do_reset
|
|
end
|
|
|
|
after do
|
|
do_reset
|
|
end
|
|
|
|
it 'user is not banned after n - 1 retries' do
|
|
do_filter
|
|
do_reset
|
|
do_filter
|
|
end
|
|
end
|
|
end
|