36 lines
		
	
	
		
			712 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			36 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
 |