Sha256: 58d1b51c1c670fa9dc43ae947adde8395d94ca8c4469044b34104d68c900d3c9

Contents?: true

Size: 1.36 KB

Versions: 10

Compression:

Stored size: 1.36 KB

Contents

require 'spec_helper'
require 'authenticate/model/brute_force'

describe Authenticate::Model::BruteForce do
  before(:each) do
    @user = create(:user)
  end

  it 'responds to locked?' do
    expect(@user).to respond_to :locked?
  end

  it 'knows when it is locked' do
    expect(@user.locked?).to be_falsey
    @user.lock!
    expect(@user.locked?).to be_truthy
  end

  context '#register_failed_login!' do
    it 'locks when failed login count reaches max' do
      @user.register_failed_login!
      @user.register_failed_login!
      @user.register_failed_login!
      expect(@user.locked?).to be_truthy
    end

    it 'sets lockout period' do
      @user.register_failed_login!
      @user.register_failed_login!
      @user.register_failed_login!
      expect(@user.lock_expires_at).to_not be_nil
    end
  end

  context '#lock!' do
    it 'before lock, locked_expires_at is nil' do
      expect(@user.lock_expires_at).to be_nil
    end

    it 'sets locked_expires_at' do
      @user.lock!
      expect(@user.lock_expires_at).to_not be_nil
      expect(@user.lock_expires_at).to be_utc
    end
  end

  context '#unlock!' do
    before(:each) do
      @user.lock!
      @user.unlock!
    end
    it 'zeros failed_logins_count' do
      expect(@user.failed_logins_count).to be(0)
    end
    it 'nils lock_expires_at' do
      expect(@user.lock_expires_at).to be_nil
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
authenticate-0.7.3 spec/model/brute_force_spec.rb
authenticate-0.7.2 spec/model/brute_force_spec.rb
authenticate-0.7.1 spec/model/brute_force_spec.rb
authenticate-0.7.0 spec/model/brute_force_spec.rb
authenticate-0.6.1 spec/model/brute_force_spec.rb
authenticate-0.6.0 spec/model/brute_force_spec.rb
authenticate-0.5.0 spec/model/brute_force_spec.rb
authenticate-0.4.0 spec/model/brute_force_spec.rb
authenticate-0.3.3 spec/model/brute_force_spec.rb
authenticate-0.3.2 spec/model/brute_force_spec.rb