lib/pundit/matchers.rb in pundit-matchers-1.1.0 vs lib/pundit/matchers.rb in pundit-matchers-1.2.0

- old
+ new

@@ -1,177 +1,16 @@ require 'rspec/core' -module Pundit - module Matchers - RSpec::Matchers.define :permit_action 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 :permit_new_and_create_actions do - match do |policy| - policy.new? && policy.create? - end - - failure_message do |policy| - "#{policy.class} does not permit the new or create action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - - failure_message_when_negated do |policy| - "#{policy.class} does not forbid the new or create action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - end - - RSpec::Matchers.define :permit_edit_and_update_actions do - match do |policy| - policy.edit? && policy.update? - end - - failure_message do |policy| - "#{policy.class} does not permit the edit or update action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - - failure_message_when_negated do |policy| - "#{policy.class} does not forbid the edit or update action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - end - - RSpec::Matchers.define :permit_mass_assignment_of do |attribute| - match do |policy| - if @action - policy.send("permitted_attributes_for_#{@action}").include? attribute - else - policy.permitted_attributes.include? attribute - end - end - - chain :for_action do |action| - @action = action - end - - failure_message do |policy| - if @action - "#{policy.class} does not permit the mass assignment of the " \ - "#{attribute} attribute, when authorising the #{@action} action, " \ - "for #{policy.user.inspect}." - else - "#{policy.class} does not permit the mass assignment of the " \ - "#{attribute} attribute for #{policy.user.inspect}." - end - end - - failure_message_when_negated do |policy| - if @action - "#{policy.class} does not forbid the mass assignment of the " \ - "#{attribute} attribute, when authorising the #{@action} action, " \ - "for #{policy.user.inspect}." - else - "#{policy.class} does not forbid the mass assignment of the " \ - "#{attribute} attribute for #{policy.user.inspect}." - end - end - end - - RSpec::Matchers.define :forbid_action 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 - - RSpec::Matchers.define :forbid_new_and_create_actions do - match do |policy| - !policy.new? && !policy.create? - end - - failure_message do |policy| - "#{policy.class} does not forbid the new or create action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - - failure_message_when_negated do |policy| - "#{policy.class} does not permit the new or create action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - end - - RSpec::Matchers.define :forbid_edit_and_update_actions do - match do |policy| - !policy.edit? && !policy.update? - end - - failure_message do |policy| - "#{policy.class} does not forbid the edit or update action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - - failure_message_when_negated do |policy| - "#{policy.class} does not permit the edit or update action on " \ - "#{policy.record} for #{policy.user.inspect}." - end - end - - RSpec::Matchers.define :forbid_mass_assignment_of do |attribute| - match do |policy| - if @action - policy.send("permitted_attributes_for_#{@action}").exclude? attribute - else - policy.permitted_attributes.exclude? attribute - end - end - - chain :for_action do |action| - @action = action - end - - failure_message do |policy| - if @action - "#{policy.class} does not forbid the mass assignment of the " \ - "#{attribute} attribute, when authorising the #{@action} action, " \ - "for #{policy.user.inspect}." - else - "#{policy.class} does not forbid the mass assignment of the " \ - "#{attribute} attribute for #{policy.user.inspect}." - end - end - - failure_message_when_negated do |policy| - if @action - "#{policy.class} does not permit the mass assignment of the " \ - "#{attribute} attribute, when authorising the #{@action} action, " \ - "for #{policy.user.inspect}." - else - "#{policy.class} does not permit the mass assignment of the " \ - "#{attribute} attribute for #{policy.user.inspect}." - end - end - end - end -end +require_relative './matchers/forbid_action' +require_relative './matchers/forbid_actions' +require_relative './matchers/forbid_edit_and_update_actions' +require_relative './matchers/forbid_mass_assignment_of' +require_relative './matchers/forbid_new_and_create_actions' +require_relative './matchers/permit_action' +require_relative './matchers/permit_actions' +require_relative './matchers/permit_edit_and_update_actions' +require_relative './matchers/permit_mass_assignment_of' +require_relative './matchers/permit_new_and_create_actions' if defined?(Pundit) RSpec.configure do |config| config.include Pundit::Matchers end