Sha256: 7b0225cd4d350c27e7acb02d9baec20b8e7dc7933fcd1957c6c1671a864fa6b8

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

require 'test_helper'

class RecoveryCodeTest < ActiveSupport::TestCase

  setup do
    @user = User.create! name: 'bob', email: 'bob@example.com', password: '123456789abc'
    @rc = QuoVadis::RecoveryCode.new(account: @user.qv_account).tap &:save!
  end


  test 'code can be retrieved initially' do
    assert_equal 11, @rc.code.length
  end


  test 'code does not change' do
    code = @rc.code
    @rc.valid?
    assert_equal code, @rc.code
  end


  test 'code not available after finding' do
    rc = QuoVadis::RecoveryCode.find @rc.id
    assert_nil rc.code
  end


  test 'authenticate' do
    code = @rc.code
    refute @rc.authenticate_code 'wrong'
    assert @rc.authenticate_code code
  end


  test 'recovery code is destroyed after successful use' do
    code = @rc.code
    assert @rc.authenticate_code code
    assert @rc.destroyed?
  end

  test 'generate a fresh set of codes' do
    account = @user.qv_account
    codes = []
    assert_difference 'QuoVadis::RecoveryCode.count', 5 do
      codes = account.generate_recovery_codes
    end
    assert_equal 5, codes.length
    codes.each do |code|
      assert_instance_of String, code
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
quo_vadis-2.1.1 test/models/recovery_code_test.rb
quo_vadis-2.1.0 test/models/recovery_code_test.rb
quo_vadis-2.0.2 test/models/recovery_code_test.rb
quo_vadis-2.0.1 test/models/recovery_code_test.rb