Module: Moat::RSpec::PolicyMatchers
Instance Method Summary collapse
- #current_role ⇒ Object
- #generate_failure_message(incorrectly_permitted: [], incorrectly_denied: []) ⇒ Object
- #permitted_authorizations(policy_class) ⇒ Object
- #permitted_through_filters(policy_class) ⇒ Object
- #role ⇒ Object
Instance Method Details
#current_role ⇒ Object
133 134 135 |
# File 'lib/moat/rspec.rb', line 133 def current_role public_send(role) end |
#generate_failure_message(incorrectly_permitted: [], incorrectly_denied: []) ⇒ Object
118 119 120 121 122 123 124 125 126 127 |
# File 'lib/moat/rspec.rb', line 118 def (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) ⇒ Object
137 138 139 140 141 142 |
# File 'lib/moat/rspec.rb', line 137 def (policy_class) policy_instance = policy_class::Authorization.new(current_role, policy_example_resource) .select do || policy_instance.public_send() end end |
#permitted_through_filters(policy_class) ⇒ Object
144 145 146 147 148 149 |
# 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 ⇒ Object
129 130 131 |
# File 'lib/moat/rspec.rb', line 129 def role ::RSpec.current_example..fetch(:role) end |