Module: Panda::Core::AuthenticationHelpers

Defined in:
lib/panda/core/testing/support/authentication_helpers.rb

Instance Method Summary collapse

Instance Method Details

#create_admin_user(attributes = {}) ⇒ Object

Create test users with fixed IDs for consistent fixture references



7
8
9
10
11
12
13
# File 'lib/panda/core/testing/support/authentication_helpers.rb', line 7

def create_admin_user(attributes = {})
  Panda::Core::User.find_or_create_by!(id: "8f481fcb-d9c8-55d7-ba17-5ea5d9ed8b7a") do |user|
    user.email = attributes[:email] || "[email protected]"
    user.name = attributes[:name] || "Admin User"
    user.admin = true
  end
end

#create_regular_user(attributes = {}) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/panda/core/testing/support/authentication_helpers.rb', line 15

def create_regular_user(attributes = {})
  Panda::Core::User.find_or_create_by!(id: "9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d") do |user|
    user.email = attributes[:email] || "[email protected]"
    user.name = attributes[:name] || "Regular User"
    user.admin = false
  end
end

#login_as_adminObject

For system specs - use test session endpoint if available



30
31
32
33
34
35
36
37
38
39
# File 'lib/panda/core/testing/support/authentication_helpers.rb', line 30

def 
  admin_user = create_admin_user
  if defined?(Panda::CMS)
    # CMS provides test session endpoint
    post "/admin/test_sessions", params: {user_id: admin_user.id}
  else
    # Fall back to direct session setting
    (admin_user)
  end
end

#login_as_regular_userObject



41
42
43
44
45
46
47
48
# File 'lib/panda/core/testing/support/authentication_helpers.rb', line 41

def 
  regular_user = create_regular_user
  if defined?(Panda::CMS)
    post "/admin/test_sessions", params: {user_id: regular_user.id}
  else
    (regular_user)
  end
end

#sign_in_as(user) ⇒ Object

For request specs - set session directly



24
25
26
27
# File 'lib/panda/core/testing/support/authentication_helpers.rb', line 24

def (user)
  session[:user_id] = user.id
  Panda::Core::Current.user = user
end