From 02b968df5a8937f5f34b98182e22c243e8d39665 Mon Sep 17 00:00:00 2001 From: Lukas Krause Date: Wed, 27 Sep 2023 13:08:16 +0200 Subject: [PATCH] Create spec for report `notify?` policy --- src/api/spec/policies/report_policy_spec.rb | 39 ++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/src/api/spec/policies/report_policy_spec.rb b/src/api/spec/policies/report_policy_spec.rb index d5ee86661c6..3616889962d 100644 --- a/src/api/spec/policies/report_policy_spec.rb +++ b/src/api/spec/policies/report_policy_spec.rb @@ -5,6 +5,10 @@ let(:user) { create(:confirmed_user) } + before do + Flipper.enable(:content_moderation) + end + permissions :show? do context 'when the current user is the owner of the report' do let(:report) { create(:report, user: user) } @@ -27,10 +31,6 @@ end permissions :create? do - before do - Flipper.enable(:content_moderation, user) - end - context 'when the current user has already reported it' do let(:reported_comment) { create(:comment_package) } let(:report) { build(:report, user: user, reportable: reported_comment) } @@ -101,4 +101,35 @@ end end end + + permissions :notify? do + let(:staff_user) { create(:staff_user) } + let(:admin_user) { create(:admin_user) } + + context 'when there is no user with moderator role' do + it 'notifies admin users' do + expect(subject).to permit(admin_user, Report) + end + + it 'notifies staff users' do + expect(subject).to permit(staff_user, Report) + end + end + + context 'when there is a user with moderator role' do + let!(:moderator_user) { create(:moderator) } + + it 'does not notify admin users' do + expect(subject).not_to(permit(admin_user, Report)) + end + + it 'does not notify staff users' do + expect(subject).not_to(permit(staff_user, Report)) + end + + it 'notifies the moderator' do + expect(subject).to permit(moderator_user, Report) + end + end + end end