skill-assessment-app/test/policies/candidate_policy_test.rb
2016-09-22 13:30:30 -05:00

49 lines
1.4 KiB
Ruby

# frozen_string_literal: true
require 'test_helper'
class CandidatePolicyTest < PolicyAssertions::Test
test 'should require current_user' do
assert_raise Pundit::NotAuthorizedError do
CandidatePolicy.new(nil, Candidate.first).view?
end
end
test 'should allow admin to scope' do
scope = CandidatePolicy::Scope.new(users(:admin), Candidate).resolve
assert_equal Candidate.count, scope.count
end
test 'should allow recruiter to scope' do
scope = CandidatePolicy::Scope.new(users(:recruiter), Candidate).resolve
assert_equal Candidate.count, scope.count
end
test 'reviewer CAN NOT scope candidates' do
assert_raise Pundit::NotAuthorizedError do
CandidatePolicy::Scope.new(users(:reviewer), Candidate).resolve
end
end
test 'manager CAN NOT scope candidates' do
assert_raise Pundit::NotAuthorizedError do
CandidatePolicy::Scope.new(users(:manager), Candidate).resolve
end
end
def test_view_and_update
assert_permit users(:admin), candidates(:roy)
assert_permit users(:recruiter), candidates(:roy)
refute_permit users(:manager), candidates(:roy)
refute_permit users(:reviewer), candidates(:roy)
end
def test_create
assert_permit users(:admin), Candidate
assert_permit users(:recruiter), Candidate
refute_permit users(:manager), Candidate
refute_permit users(:reviewer), Candidate
end
end