Testing ImpersonationSession Security Validation in Maybe Finance
This test suite validates the ImpersonationSession model’s security and validation logic in the Maybe Finance application. It ensures proper access control and validation rules for user impersonation functionality.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
maybe-finance/maybe
test/models/impersonation_session_test.rb
require "test_helper"
class ImpersonationSessionTest < ActiveSupport::TestCase
test "only super admin can impersonate" do
regular_user = users(:family_member)
assert_not regular_user.super_admin?
assert_raises(ActiveRecord::RecordInvalid) do
ImpersonationSession.create!(
impersonator: regular_user,
impersonated: users(:maybe_support_staff)
)
end
end
test "super admin cannot be impersonated" do
super_admin = users(:maybe_support_staff)
assert super_admin.super_admin?
assert_raises(ActiveRecord::RecordInvalid) do
ImpersonationSession.create!(
impersonator: users(:family_member),
impersonated: super_admin
)
end
end
test "impersonation session must have different impersonator and impersonated" do
super_admin = users(:maybe_support_staff)
assert_raises(ActiveRecord::RecordInvalid) do
ImpersonationSession.create!(
impersonator: super_admin,
impersonated: super_admin
)
end
end
end