class TinyGate::TestHelper::User

Attributes

email[R]
first_name[R]
id[R]
last_name[R]
password[R]
token[R]

Public Class Methods

new(id, email, password, first_name = 'First', last_name = 'Last') click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 6
def initialize(id, email, password, first_name = 'First', last_name = 'Last')
  @id          = id
  @email       = email
  @password    = password
  @first_name  = first_name
  @last_name   = last_name
  @token       = SecureRandom.hex
  @permissions = Set.new
  @current_organization_id = nil
end

Public Instance Methods

add_permission(permission_id, role_id, role_name, organization_id, organization_name = nil, app_id = nil) click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 21
def add_permission(permission_id, role_id, role_name, organization_id, organization_name = nil, app_id = nil)
  @permissions << OpenStruct.new(
    id:                permission_id,
    role_id:           role_id,
    role_name:         role_name,
    organization_id:   organization_id,
    organization_name: organization_name,
    app_id:            app_id
  )
end
data() click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 32
def data
  {
    id:                 id,
    email:              email,
    token:              token,
    first_name:         first_name,
    last_name:          last_name,
    current_permission: current_permission,
    active_permissions: active_permissions
  }
end
sign_in(organization_id = nil) click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 17
def sign_in(organization_id = nil)
  @current_organization_id = organization_id
end

Private Instance Methods

active_permissions() click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 58
def active_permissions
  @permissions.map { |permission| to_hash(permission) }
end
current_organization_id() click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 46
def current_organization_id
  @current_organization_id || @permissions.first.organization_id
end
current_permission() click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 50
def current_permission
  to_hash(find_current_permission)
end
find_current_permission() click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 54
def find_current_permission
  current_organization_id && @permissions.detect { |p| p.organization_id == current_organization_id }
end
to_hash(permission) click to toggle source
# File lib/tiny_gate/test_helper/user.rb, line 62
def to_hash(permission)
  {
    id:                permission.id,
    role_id:           permission.role_id,
    role_name:         permission.role_name,
    organization_id:   permission.organization_id,
    organization_name: permission.organization_name,
    app_id:            permission.app_id,
    user_id:           id
  }
end