voting requires a comment - completes #102

This commit is contained in:
Mark Moser
2017-02-27 13:41:46 -06:00
parent 538190b6bf
commit 3f41773c76
11 changed files with 84 additions and 18 deletions

View File

@ -40,6 +40,19 @@ module Admin
assert flash[:success]
end
test "admin can post comment" do
auth_admin
candidate = candidates(:stacy)
assert_difference("QuizComment.count") do
post admin_create_comment_url(test_hash: candidate.test_hash),
params: { quiz_comment: { message: 'this is an admin comment' } }
end
assert_redirected_to admin_result_url(test_hash: candidate.test_hash)
assert flash[:success]
end
test "should queue emails on create" do
auth_reviewer
candidate = candidates(:stacy)

View File

@ -6,7 +6,7 @@ module Admin
include ActiveJob::TestHelper
test "reviewer can up vote henry" do
auth_user users(:reviewer)
auth_user users(:reviewer2)
henry = candidates(:henry)
assert_difference("Candidate.find(#{henry.id}).votes.yea.count", 1) do
@ -16,7 +16,7 @@ module Admin
end
test "reviewer can down vote henry" do
auth_user users(:reviewer)
auth_user users(:reviewer2)
henry = candidates(:henry)
assert_difference("Candidate.find(#{henry.id}).votes.nay.count", 1) do
@ -26,7 +26,7 @@ module Admin
end
test "reviewer can change vote on henry" do
auth_user users(:reviewer)
auth_user users(:reviewer2)
henry = candidates(:henry)
get admin_up_vote_url(henry.test_hash)
@ -72,5 +72,23 @@ module Admin
data = JSON.parse(response.body)
assert_match 'requested', data["message"]
end
test "reviewer can only vote after commenting" do
auth_user users(:reviewer)
henry = candidates(:henry)
assert_difference("Candidate.find(#{henry.id}).votes.yea.count", 0) do
get admin_up_vote_url(henry.test_hash)
end
post admin_create_comment_url(test_hash: henry.test_hash),
params: { quiz_comment: { message: 'this is a comment to vote' } }
assert_difference("Candidate.find(#{henry.id}).votes.yea.count", 1) do
get admin_up_vote_url(henry.test_hash)
end
assert_response :success
end
end
end

View File

@ -70,3 +70,18 @@ com14:
user: reviewer2
message: Ultricies Vulputate Bibendum Parturient
com15:
test_hash: 6NjnourLE6Y #richard
user: manager
message: gibberish
com16:
test_hash: egPomAuVDeCEp #henry
user: admin
message: word.
com17:
test_hash: 6NjnourLE6Y #richard
user: reviewer
message: more gibberish

View File

@ -9,7 +9,7 @@ class QuizCommentTest < ActiveSupport::TestCase
test "user to comments association" do
manager = users(:manager)
assert_equal 4, manager.quiz_comments.size
assert_equal 5, manager.quiz_comments.size
end
test "candidate to comments association" do

View File

@ -14,8 +14,8 @@ class QuizCommentPolicyTest < PolicyAssertions::Test
assert_permit users(:manager), comment
assert_permit users(:reviewer), comment
assert_permit users(:admin), comment
refute_permit users(:admin), comment
refute_permit users(:recruiter), comment
end

View File

@ -31,8 +31,8 @@ class ReviewerVotePolicyTest < PolicyAssertions::Test
def test_up
assert_permit users(:manager), reviewer_votes(:manager_richard)
assert_permit users(:reviewer), reviewer_votes(:reviewer_richard)
assert_permit users(:admin), reviewer_votes(:manager_henry)
refute_permit users(:admin), reviewer_votes(:manager_henry)
refute_permit users(:recruiter), reviewer_votes(:manager_henry)
refute_permit users(:reviewer), reviewer_votes(:gustov)
refute_permit users(:manager), reviewer_votes(:gustov)
@ -41,8 +41,8 @@ class ReviewerVotePolicyTest < PolicyAssertions::Test
def test_down
assert_permit users(:manager), reviewer_votes(:manager_richard)
assert_permit users(:reviewer), reviewer_votes(:reviewer_richard)
assert_permit users(:admin), reviewer_votes(:manager_henry)
refute_permit users(:admin), reviewer_votes(:manager_henry)
refute_permit users(:recruiter), reviewer_votes(:manager_henry)
refute_permit users(:reviewer), reviewer_votes(:gustov)
refute_permit users(:manager), reviewer_votes(:gustov)