module ActionPolicy::Testing::AuthorizeTracker

Collects all Authorizer calls

Public Class Methods

calls() click to toggle source
# File lib/action_policy/testing.rb, line 89
def calls
  Thread.current[:__action_policy_calls] ||= []
end
scopings() click to toggle source
# File lib/action_policy/testing.rb, line 93
def scopings
  Thread.current[:__action_policy_scopings] ||= []
end
track(policy, rule) click to toggle source

Called from Authorizer

# File lib/action_policy/testing.rb, line 78
def track(policy, rule)
  return unless tracking?
  calls << Call.new(policy, rule)
end
track_scope(target, policy, type:, name:, scope_options:) click to toggle source

Called from Authorizer

# File lib/action_policy/testing.rb, line 84
def track_scope(target, policy, type:, name:, scope_options:)
  return unless tracking?
  scopings << Scoping.new(policy, target, type, name, scope_options)
end
tracking() { || ... } click to toggle source

Wrap code under inspection into this method to track authorize! calls

# File lib/action_policy/testing.rb, line 68
def tracking
  calls.clear
  scopings.clear
  Thread.current[:__action_policy_tracking] = true
  yield
ensure
  Thread.current[:__action_policy_tracking] = false
end
tracking?() click to toggle source
# File lib/action_policy/testing.rb, line 97
def tracking?
  Thread.current[:__action_policy_tracking] == true
end