Module: Panda::Core::AuthenticationHelpers
- Defined in:
- lib/panda/core/testing/support/authentication_helpers.rb
Instance Method Summary collapse
-
#create_admin_user(attributes = {}) ⇒ Object
Create test users with fixed IDs for consistent fixture references.
- #create_regular_user(attributes = {}) ⇒ Object
-
#login_as_admin ⇒ Object
For system specs - use test session endpoint if available.
- #login_as_regular_user ⇒ Object
-
#sign_in_as(user) ⇒ Object
For request specs - set session directly.
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_admin ⇒ Object
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 login_as_admin 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 sign_in_as(admin_user) end end |
#login_as_regular_user ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/panda/core/testing/support/authentication_helpers.rb', line 41 def login_as_regular_user regular_user = create_regular_user if defined?(Panda::CMS) post "/admin/test_sessions", params: {user_id: regular_user.id} else sign_in_as(regular_user) end end |