Sha256: f9b07dfea811c8e0c9096a7e40e52462aa04b528a35ea7b7cdd0947924f5fd14

Contents?: true

Size: 1.12 KB

Versions: 3

Compression:

Stored size: 1.12 KB

Contents

require 'authlogic/test_case'

module TbCore::SessionHelper
  include Authlogic::TestCase

  # Use this helper in controller specs to establish a login session
  # - admin: Set to true to create a super_admin
  # - permissions: One or more permissions you want to assign to the user (a role will be auto generated)
  #
  def activate_session(admin: false, permissions: nil)
    activate_authlogic()
    if permissions
      permissions = [permissions] unless permissions.is_a?(Array)
      role = SpudRole.create(name: 'New Role', permission_tags: permissions)
    else
      role = nil
    end
    @user = FactoryBot.create(:spud_user, super_admin: admin, role: role)
    SpudUserSession.create(@user)
    return @user
  end

  # Returns the current user
  #
  def current_user
    return @user
  end
end

# Insert the session helper into RSpec if it is in use
#
if defined?(RSpec)
  RSpec.configure do |config|
    config.include TbCore::SessionHelper
  end
end

# Auto load the spud_user factory if FactoryBot is in use
#
Dir[TbCore::Engine.root.join('spec/factories/spud_user_factories.rb')].each{ |f| require f } if defined?(FactoryBot)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tb_core-1.4.8 lib/tb_core/test_helper.rb
tb_core-1.4.7 lib/tb_core/test_helper.rb
tb_core-1.4.6 lib/tb_core/test_helper.rb