mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 17:21:38 -05:00
31 lines
855 B
Ruby
31 lines
855 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Custom RSpec matchers for Pundit policies
|
|
|
|
RSpec::Matchers.define :permit do |action|
|
|
match do |policy|
|
|
policy.public_send("#{action}?")
|
|
end
|
|
|
|
failure_message do |policy|
|
|
"#{policy.class} does not permit #{action} on #{policy.record} for #{policy.user.inspect}."
|
|
end
|
|
|
|
failure_message_when_negated do |policy|
|
|
"#{policy.class} does not forbid #{action} on #{policy.record} for #{policy.user.inspect}."
|
|
end
|
|
end
|
|
|
|
RSpec::Matchers.define :forbid do |action|
|
|
match do |policy|
|
|
policy.public_send("#{action}?")
|
|
end
|
|
|
|
failure_message do |policy|
|
|
"#{policy.class} does not forbid #{action} on #{policy.record} for #{policy.user.inspect}."
|
|
end
|
|
|
|
failure_message_when_negated do |policy|
|
|
"#{policy.class} does not permit #{action} on #{policy.record} for #{policy.user.inspect}."
|
|
end
|
|
end
|