Welcome to mirror list, hosted at ThFree Co, Russian Federation.

rack_attack_helpers_spec.rb « backend « gitlab « lib « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2ac496fd669a62cb3b48b0dd9377d580a6df8bbf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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