0
0
Fork 0

Improve app/policies coverage (#32426)

This commit is contained in:
Matt Jankowski 2024-10-15 10:24:12 -04:00 committed by GitHub
parent 28131b4b00
commit 9e8f099d38
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
35 changed files with 264 additions and 55 deletions

View file

@ -1,7 +1,6 @@
# frozen_string_literal: true
require 'rails_helper'
require 'pundit/rspec'
RSpec.describe UserPolicy do
subject { described_class }
@ -112,4 +111,42 @@ RSpec.describe UserPolicy do
end
end
end
permissions :approve?, :reject? do
context 'when admin' do
context 'when user is approved' do
it { is_expected.to_not permit(admin, User.new(approved: true)) }
end
context 'when user is not approved' do
it { is_expected.to permit(admin, User.new(approved: false)) }
end
end
context 'when not admin' do
it { is_expected.to_not permit(john, User.new) }
end
end
permissions :change_role? do
context 'when not admin' do
it { is_expected.to_not permit(john, User.new) }
end
context 'when admin' do
let(:user) { User.new(role: role) }
context 'when role of admin overrides user role' do
let(:role) { UserRole.new(position: admin.user.role.position - 10, id: 123) }
it { is_expected.to permit(admin, user) }
end
context 'when role of admin does not override user role' do
let(:role) { UserRole.new(position: admin.user.role.position + 10, id: 123) }
it { is_expected.to_not permit(admin, user) }
end
end
end
end