diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 9ce404a1d..2b6138783 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -857,7 +857,6 @@ RSpec/PendingWithoutReason: Exclude: - 'spec/controllers/statuses_controller_spec.rb' - 'spec/models/account_spec.rb' - - 'spec/models/user_spec.rb' # This cop supports unsafe autocorrection (--autocorrect-all). # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers. diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 2bb6a334b..b7754e926 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -527,6 +527,28 @@ RSpec.describe User, type: :model do end describe '.those_who_can' do - pending + let!(:moderator_user) { Fabricate(:user, role: UserRole.find_by(name: 'Moderator')) } + + context 'when there are not any user roles' do + before { UserRole.destroy_all } + + it 'returns an empty list' do + expect(User.those_who_can(:manage_blocks)).to eq([]) + end + end + + context 'when there are not users with the needed role' do + it 'returns an empty list' do + expect(User.those_who_can(:manage_blocks)).to eq([]) + end + end + + context 'when there are users with roles' do + let!(:admin_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) } + + it 'returns the users with the role' do + expect(User.those_who_can(:manage_blocks)).to eq([admin_user]) + end + end end end