aboutsummaryrefslogtreecommitdiffstats
path: root/spec/support/pundit.rb
blob: f1803b63274567941dc608d68c94ea39506de5cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'pundit/rspec'

module Support
  module ApplicationPolicy
    def add_permissions(*permissions, for_user:)
      for_user.permissions ||= []
      for_user.permissions += permissions.flatten
    end

    def create_user_context(user:, referential:)
      OpenStruct.new(user: user, context: {referential: referential})
    end

    def add_permissions(*permissions, for_user:)
      for_user.permissions ||= []
      for_user.permissions += permissions.flatten
    end
  end

  module ApplicationPolicyMacros
    def self.extended into
      into.module_eval do
        subject { described_class }
        let( :user_context ) { create_user_context(user: user, referential: referential)  }
        let( :referentail )  { create :referential }
        let( :user )         { create :user }
      end
    end
    
  end
end

RSpec.configure do | c |
  c.include Support::ApplicationPolicy, type: :policy
  c.extend Support::ApplicationPolicyMacros, type: :policy
end