Sha256: 1c7a16ae005e55a9b1371ec36d6eac6cb4a02ad356487b8aa8b1699e24eacf6d

Contents?: true

Size: 1.6 KB

Versions: 20

Compression:

Stored size: 1.6 KB

Contents

require 'test/test_helper'

class TrackableHooksTest < ActionController::IntegrationTest

  test "current and last sign in timestamps are updated on each sign in" do
    user = create_user
    assert_nil user.current_sign_in_at
    assert_nil user.last_sign_in_at

    sign_in_as_user
    user.reload

    assert_kind_of Time, user.current_sign_in_at
    assert_kind_of Time, user.last_sign_in_at

    assert_equal user.current_sign_in_at, user.last_sign_in_at
    assert user.current_sign_in_at >= user.created_at

    visit destroy_user_session_path
    new_time = 2.seconds.from_now
    Time.stubs(:now).returns(new_time)

    sign_in_as_user
    user.reload
    assert user.current_sign_in_at > user.last_sign_in_at
  end

  test "current and last sign in remote ip are updated on each sign in" do
    user = create_user
    assert_nil user.current_sign_in_ip
    assert_nil user.last_sign_in_ip

    sign_in_as_user
    user.reload

    assert_equal "127.0.0.1", user.current_sign_in_ip
    assert_equal "127.0.0.1", user.last_sign_in_ip
  end

  test "increase sign in count" do
    user = create_user
    assert_equal 0, user.sign_in_count

    sign_in_as_user
    user.reload
    assert_equal 1, user.sign_in_count

    visit destroy_user_session_path
    sign_in_as_user
    user.reload
    assert_equal 2, user.sign_in_count
  end

  test "does not update anything if user has signed out along the way" do
    swap Devise, :confirm_within => 0 do
      user = create_user(:confirm => false)
      sign_in_as_user

      user.reload
      assert_nil user.current_sign_in_at
      assert_nil user.last_sign_in_at
    end
  end
end

Version data entries

20 entries across 15 versions & 5 rubygems

Version Path
graffititracker_devise-1.0.11 test/integration/trackable_test.rb
devise-1.0.11 test/integration/trackable_test.rb
devise-1.0.10 test/integration/trackable_test.rb
devise_ennder-1.4.1.0.9 test/rails_app/vendor/plugins/devise/test/integration/trackable_test.rb
devise_ennder-1.4.1.0.9 test/integration/trackable_test.rb
devise_ennder-1.3.1.0.9 test/rails_app/vendor/plugins/devise/test/integration/trackable_test.rb
devise_ennder-1.3.1.0.9 test/integration/trackable_test.rb
devise_ennder-1.2.1.0.9 test/rails_app/vendor/plugins/devise/test/integration/trackable_test.rb
devise_ennder-1.2.1.0.9 test/integration/trackable_test.rb
devise_ennder-1.1.1.0.9 test/integration/trackable_test.rb
devise_ennder-1.1.1.0.9 test/rails_app/vendor/plugins/devise/test/integration/trackable_test.rb
devise_ennder-1.0.1.0.9 test/integration/trackable_test.rb
devise_ennder-1.0.1.0.9 test/rails_app/vendor/plugins/devise/test/integration/trackable_test.rb
devise-1.0.9 test/integration/trackable_test.rb
dcu-devise-1.0.7 test/integration/trackable_test.rb
devise-1.0.8 test/integration/trackable_test.rb
ivanvc-devise-1.0.7.1 test/integration/trackable_test.rb
devise-1.0.7 test/integration/trackable_test.rb
devise-1.0.6 test/integration/trackable_test.rb
devise-1.0.5 test/integration/trackable_test.rb