X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/3af16f6337b52546297e7e09a1aba9b0e1df7e15..7b057545c0b2030aad9981bd93699f9e33ad7d5f:/test/abilities/api_abilities_test.rb diff --git a/test/abilities/api_abilities_test.rb b/test/abilities/api_abilities_test.rb new file mode 100644 index 000000000..7734ce996 --- /dev/null +++ b/test/abilities/api_abilities_test.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +require "test_helper" + +class ApiAbilityTest < ActiveSupport::TestCase +end + +class GuestApiAbilityTest < ApiAbilityTest + test "note permissions for a guest" do + ability = ApiAbility.new nil + + [:index, :create, :comment, :feed, :show, :search].each do |action| + assert ability.can?(action, Note), "should be able to #{action} Notes" + end + + [:close, :reopen, :destroy].each do |action| + assert ability.cannot?(action, Note), "should not be able to #{action} Notes" + end + end +end + +class UserApiAbilityTest < ApiAbilityTest + test "Note permissions" do + ability = ApiAbility.new create(:user) + + [:index, :create, :comment, :feed, :show, :search, :close, :reopen].each do |action| + assert ability.can?(action, Note), "should be able to #{action} Notes" + end + + [:destroy].each do |action| + assert ability.cannot?(action, Note), "should not be able to #{action} Notes" + end + end +end + +class ModeratorApiAbilityTest < ApiAbilityTest + test "Note permissions" do + ability = ApiAbility.new create(:moderator_user) + + [:index, :create, :comment, :feed, :show, :search, :close, :reopen, :destroy].each do |action| + assert ability.can?(action, Note), "should be able to #{action} Notes" + end + end +end