From 4cfe52635cf82ae496bf2c6b8e3271ad931d225a Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sat, 29 Apr 2023 16:03:36 -0400 Subject: [PATCH] Add pending spec for User.those_who_can (#24724) --- .rubocop_todo.yml | 1 - spec/models/user_spec.rb | 24 +++++++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 9ce404a1de..2b61387830 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 2bb6a334b1..b7754e9265 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