module Moat::RSpec::PolicyMatchers

Public Instance Methods

current_role() click to toggle source
# File lib/moat/rspec.rb, line 133
def current_role
  public_send(role)
end
generate_failure_message(incorrectly_permitted: [], incorrectly_denied: []) click to toggle source
# File lib/moat/rspec.rb, line 118
def generate_failure_message(incorrectly_permitted: [], incorrectly_denied: [])
  failure_descriptions = []
  unless incorrectly_permitted.empty?
    failure_descriptions << "Incorrectly permitted to #{role}: #{incorrectly_permitted.to_sentence}"
  end
  unless incorrectly_denied.empty?
    failure_descriptions << "Incorrectly denied to #{role}: #{incorrectly_denied.to_sentence}"
  end
  failure_descriptions.join("\n")
end
permitted_authorizations(policy_class) click to toggle source
# File lib/moat/rspec.rb, line 137
def permitted_authorizations(policy_class)
  policy_instance = policy_class::Authorization.new(current_role, policy_example_resource)
  policy_authorizations.select do |authorization|
    policy_instance.public_send(authorization)
  end
end
permitted_through_filters(policy_class) click to toggle source
# File lib/moat/rspec.rb, line 144
def permitted_through_filters(policy_class)
  policy_instance = policy_class::Filter.new(current_role, policy_example_scope)
  policy_filters.select do |filter|
    policy_instance.public_send(filter).include?(policy_example_resource)
  end
end
role() click to toggle source
# File lib/moat/rspec.rb, line 129
def role
  ::RSpec.current_example.metadata.fetch(:role)
end