]> git.openstreetmap.org Git - rails.git/blob - test/abilities/moderator_ability_test.rb
Merge remote-tracking branch 'upstream/pull/6787'
[rails.git] / test / abilities / moderator_ability_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class ModeratorAbilityTest < ActiveSupport::TestCase
6   test "Issue permissions" do
7     ability = Ability.new create(:moderator_user)
8
9     [:index, :show, :resolve, :ignore, :reopen].each do |action|
10       assert ability.can?(action, Issue), "should be able to #{action} Issues"
11     end
12   end
13
14   test "User Roles permissions" do
15     ability = Ability.new create(:moderator_user)
16
17     [:create, :destroy].each do |action|
18       assert ability.cannot?(action, UserRole), "should not be able to #{action} UserRoles"
19     end
20
21     [:hide, :unhide].each do |action|
22       assert ability.can?(action, DiaryEntry), "should be able to #{action} DiaryEntries"
23       assert ability.can?(action, DiaryComment), "should be able to #{action} DiaryComment"
24     end
25   end
26
27   test "Active block update permissions" do
28     creator_user = create(:moderator_user)
29     other_moderator_user = create(:moderator_user)
30     block = create(:user_block, :creator => creator_user)
31
32     creator_ability = Ability.new creator_user
33     assert creator_ability.can?(:edit, block)
34     assert creator_ability.can?(:update, block)
35
36     other_moderator_ability = Ability.new other_moderator_user
37     assert other_moderator_ability.can?(:edit, block)
38     assert other_moderator_ability.can?(:update, block)
39   end
40
41   test "Expired block update permissions" do
42     creator_user = create(:moderator_user)
43     other_moderator_user = create(:moderator_user)
44     block = create(:user_block, :expired, :creator => creator_user)
45
46     creator_ability = Ability.new creator_user
47     assert creator_ability.can?(:edit, block)
48     assert creator_ability.can?(:update, block)
49
50     other_moderator_ability = Ability.new other_moderator_user
51     assert other_moderator_ability.cannot?(:edit, block)
52     assert other_moderator_ability.cannot?(:update, block)
53   end
54
55   test "Revoked block update permissions" do
56     creator_user = create(:moderator_user)
57     revoker_user = create(:moderator_user)
58     other_moderator_user = create(:moderator_user)
59     block = create(:user_block, :revoked, :creator => creator_user, :revoker => revoker_user)
60
61     creator_ability = Ability.new creator_user
62     assert creator_ability.can?(:edit, block)
63     assert creator_ability.can?(:update, block)
64
65     revoker_ability = Ability.new revoker_user
66     assert revoker_ability.can?(:edit, block)
67     assert revoker_ability.can?(:update, block)
68
69     other_moderator_ability = Ability.new other_moderator_user
70     assert other_moderator_ability.cannot?(:edit, block)
71     assert other_moderator_ability.cannot?(:update, block)
72   end
73 end