Module: Verikloak::Rails::Testing::Helpers

Includes:
ClaimsBuilder, MiddlewareStub
Defined in:
lib/verikloak/rails/testing/helpers.rb

Overview

Top-level mix-in for RSpec example groups (request and policy specs). Composes ClaimsBuilder and MiddlewareStub, and adds ‘Verikloak::Pundit::UserContext` builders when the optional `verikloak-pundit` gem is loaded.

Constant Summary

Constants included from MiddlewareStub

MiddlewareStub::DEFAULT_STUB_TOKEN

Instance Method Summary collapse

Methods included from MiddlewareStub

#stub_verikloak_middleware

Methods included from ClaimsBuilder

#build_admin_claims, #build_jwt_claims, #build_user_claims

Instance Method Details

#build_admin_user_context(user, admin_group: '/admin') ⇒ Verikloak::Pundit::UserContext

Convenience wrapper: admin claims + UserContext.

Parameters:

  • user (Object)
  • admin_group (String) (defaults to: '/admin')

Returns:

  • (Verikloak::Pundit::UserContext)


36
37
38
# File 'lib/verikloak/rails/testing/helpers.rb', line 36

def build_admin_user_context(user, admin_group: '/admin')
  build_pundit_user_context(user, build_admin_claims(user, admin_group: admin_group))
end

#build_pundit_user_context(user, claims) ⇒ Verikloak::Pundit::UserContext

Build a ‘Verikloak::Pundit::UserContext` for policy specs.

Parameters:

  • user (Object)

    application user

  • claims (Hash)

    JWT claims (string keys)

Returns:

  • (Verikloak::Pundit::UserContext)

Raises:

  • (RuntimeError)

    if ‘verikloak-pundit` is not loaded



23
24
25
26
27
28
29
# File 'lib/verikloak/rails/testing/helpers.rb', line 23

def build_pundit_user_context(user, claims)
  unless defined?(::Verikloak::Pundit::UserContext)
    raise 'verikloak-pundit gem is not loaded; cannot build a UserContext'
  end

  ::Verikloak::Pundit::UserContext.new(user, claims)
end

#build_user_user_context(user, user_group: '/user') ⇒ Verikloak::Pundit::UserContext

Convenience wrapper: user claims + UserContext.

Parameters:

  • user (Object)
  • user_group (String) (defaults to: '/user')

Returns:

  • (Verikloak::Pundit::UserContext)


45
46
47
# File 'lib/verikloak/rails/testing/helpers.rb', line 45

def build_user_user_context(user, user_group: '/user')
  build_pundit_user_context(user, build_user_claims(user, user_group: user_group))
end