quiz policies
This commit is contained in:
47
test/policies/quiz_policy_test.rb
Normal file
47
test/policies/quiz_policy_test.rb
Normal file
@ -0,0 +1,47 @@
|
||||
# frozen_string_literal: true
|
||||
require 'test_helper'
|
||||
|
||||
class QuizPolicyTest < PolicyAssertions::Test
|
||||
test 'should require current_user' do
|
||||
assert_raise Pundit::NotAuthorizedError do
|
||||
QuizPolicy.new(nil, Quiz.first).view?
|
||||
end
|
||||
end
|
||||
|
||||
test 'should allow admin to scope' do
|
||||
scope = QuizPolicy::Scope.new(users(:admin), Quiz).resolve
|
||||
assert_equal Quiz.count, scope.count
|
||||
end
|
||||
|
||||
test 'should allow manager to scope' do
|
||||
scope = QuizPolicy::Scope.new(users(:manager), Quiz).resolve
|
||||
assert_equal Quiz.count, scope.count
|
||||
end
|
||||
|
||||
test 'should allow reviewer to scope' do
|
||||
scope = QuizPolicy::Scope.new(users(:reviewer), Quiz).resolve
|
||||
assert_equal users(:reviewer).quizzes.count, scope.count
|
||||
end
|
||||
|
||||
test 'should allow recruiter to scope' do
|
||||
scope = QuizPolicy::Scope.new(users(:recruiter), Quiz).resolve
|
||||
assert_equal Quiz.count, scope.count
|
||||
end
|
||||
|
||||
def test_view
|
||||
assert_permit users(:admin), quizzes(:fed)
|
||||
assert_permit users(:manager), quizzes(:fed)
|
||||
assert_permit users(:reviewer), quizzes(:fed)
|
||||
|
||||
refute_permit users(:reviewer), quizzes(:admin)
|
||||
refute_permit users(:recruiter), quizzes(:fed)
|
||||
end
|
||||
|
||||
def test_create_and_update
|
||||
assert_permit users(:admin), Quiz
|
||||
assert_permit users(:manager), Quiz
|
||||
|
||||
refute_permit users(:recruiter), Quiz
|
||||
refute_permit users(:reviewer), Quiz
|
||||
end
|
||||
end
|
@ -20,12 +20,18 @@ class UserPolicyTest < PolicyAssertions::Test
|
||||
end
|
||||
|
||||
def test_view
|
||||
refute_permit users(:manager), User.first
|
||||
assert_permit users(:admin), User.first
|
||||
|
||||
refute_permit users(:manager), User.first
|
||||
refute_permit users(:reviewer), User.first
|
||||
refute_permit users(:recruiter), User.first
|
||||
end
|
||||
|
||||
def test_create_and_update
|
||||
refute_permit users(:manager), User
|
||||
assert_permit users(:admin), User
|
||||
|
||||
refute_permit users(:manager), User
|
||||
refute_permit users(:reviewer), User
|
||||
refute_permit users(:recruiter), User
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user