1 # frozen_string_literal: true
5 class ModeratorAbilityTest < ActiveSupport::TestCase
6 test "Issue permissions" do
7 ability = Ability.new create(:moderator_user)
9 [:index, :show, :resolve, :ignore, :reopen].each do |action|
10 assert ability.can?(action, Issue), "should be able to #{action} Issues"
14 test "User Roles permissions" do
15 ability = Ability.new create(:moderator_user)
17 [:create, :destroy].each do |action|
18 assert ability.cannot?(action, UserRole), "should not be able to #{action} UserRoles"
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"
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)
32 creator_ability = Ability.new creator_user
33 assert creator_ability.can?(:edit, block)
34 assert creator_ability.can?(:update, block)
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)
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)
46 creator_ability = Ability.new creator_user
47 assert creator_ability.can?(:edit, block)
48 assert creator_ability.can?(:update, block)
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)
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)
61 creator_ability = Ability.new creator_user
62 assert creator_ability.can?(:edit, block)
63 assert creator_ability.can?(:update, block)
65 revoker_ability = Ability.new revoker_user
66 assert revoker_ability.can?(:edit, block)
67 assert revoker_ability.can?(:update, block)
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)