Top Level Namespace
Defined Under Namespace
Modules: CapybaraHelper, ControllerHelper, FactoryGirl, FeatureLoginHelper, RequiredSeeds, SpecSnap
Instance Method Summary collapse
Instance Method Details
#test_policy_table(permission_matrix, klass = nil, policy_object_defined: false) ⇒ Object
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 |
# File 'lib/spec_snap/policy_helper.rb', line 6 def test_policy_table , klass = nil, policy_object_defined: false Tableware.hashes().each do |perms| action = "#{perms[:action]}?".to_sym roles = User::ROLES.map(&:to_sym) action do roles.each do |role| allowed = perms[role] == 'yes' user = User.new(role: role) unless policy_object_defined let(:policy_object) { klass.nil? ? nil : klass.new } end it "#{allowed ? 'allows' : 'denies'} access to #{role} users" do if allowed expect(described_class).to permit(user, policy_object) else expect(described_class).to_not permit(user, policy_object) end end end end end end |