Sha256: 67ce3535b3f97d88344a1dc36f62ad34c27d8dc9f93780ec76ca5de2c8cb1fb3

Contents?: true

Size: 1.37 KB

Versions: 14

Compression:

Stored size: 1.37 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', (-1 + 5) do
      codes = account.generate_recovery_codes
    end
    assert_equal 5, codes.length
    assert_equal 5, account.recovery_codes.count
    codes.each do |code|
      assert_instance_of String, code
    end

    new_codes = account.generate_recovery_codes
    assert_equal 5, new_codes.length
    assert_equal 5, account.recovery_codes.count
    refute_equal new_codes, codes
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
quo_vadis-2.2.4 test/models/recovery_code_test.rb
quo_vadis-2.2.2 test/models/recovery_code_test.rb
quo_vadis-2.2.1 test/models/recovery_code_test.rb
quo_vadis-2.2.0 test/models/recovery_code_test.rb
quo_vadis-2.1.11 test/models/recovery_code_test.rb
quo_vadis-2.1.10 test/models/recovery_code_test.rb
quo_vadis-2.1.9 test/models/recovery_code_test.rb
quo_vadis-2.1.8 test/models/recovery_code_test.rb
quo_vadis-2.1.7 test/models/recovery_code_test.rb
quo_vadis-2.1.6 test/models/recovery_code_test.rb
quo_vadis-2.1.5 test/models/recovery_code_test.rb
quo_vadis-2.1.4 test/models/recovery_code_test.rb
quo_vadis-2.1.3 test/models/recovery_code_test.rb
quo_vadis-2.1.2 test/models/recovery_code_test.rb