4bbd93ded1
Adding the .ruby-verison file triggered previously un-run cops, specifically: This cop is designed to help upgrade to Ruby 3.0. It will add the comment `# frozen_string_literal: true` to the top of files to enable frozen string literals. Frozen string literals will be default in Ruby 3.0. The comment will be added below a shebang and encoding comment. The frozen string literal comment is only valid in Ruby 2.3+. More info on rubocop [Automatic-Corrections](https://github.com/bbatsov/rubocop/wiki/Automatic-Corrections)
95 lines
2.5 KiB
Ruby
95 lines
2.5 KiB
Ruby
# frozen_string_literal: true
|
|
require 'test_helper'
|
|
|
|
class RecruiterControllerTest < ActionDispatch::IntegrationTest
|
|
def setup_auth
|
|
post recruiter_auth_url, params: { auth:
|
|
{ email: 'pdr.recruiter@mailinator.com', password: 'password' } }
|
|
end
|
|
|
|
test "should get login" do
|
|
get recruiter_login_url
|
|
assert_response :success
|
|
end
|
|
|
|
test 'should logout and reset session' do
|
|
setup_auth
|
|
get recruiter_logout_path
|
|
|
|
assert :success
|
|
assert session[:user].nil?
|
|
end
|
|
|
|
test "should require auth or redirect" do
|
|
get recruiter_url
|
|
assert_redirected_to recruiter_login_path
|
|
|
|
get new_candidate_url
|
|
assert_redirected_to recruiter_login_path
|
|
|
|
post create_candidate_url, params: { candidate: { name: 'foo', email: 'bar', experience: 'baz' } }
|
|
assert_redirected_to recruiter_login_path
|
|
end
|
|
|
|
test "should auth to index" do
|
|
setup_auth
|
|
assert_redirected_to recruiter_path
|
|
assert session[:user].present?
|
|
end
|
|
|
|
test "should fail auth with flash" do
|
|
post recruiter_auth_url, params: { auth:
|
|
{ email: 'pdr.recruiter@mailinator.com', password: 'bad-password' } }
|
|
|
|
assert_redirected_to recruiter_login_path
|
|
assert flash[:error]
|
|
end
|
|
|
|
test "should get candidate list" do
|
|
setup_auth
|
|
get recruiter_url
|
|
assert_response :success
|
|
assert assigns(:candidates), "@candidates not present"
|
|
end
|
|
|
|
test "should get new" do
|
|
setup_auth
|
|
get new_candidate_url
|
|
assert_response :success
|
|
assert assigns(:candidate), "@candidate not present"
|
|
end
|
|
|
|
test "should get create" do
|
|
setup_auth
|
|
get create_candidate_url
|
|
assert_response :success
|
|
end
|
|
|
|
test "should create new candidate" do
|
|
setup_auth
|
|
|
|
assert_difference("ActionMailer::Base.deliveries.size", 2) do
|
|
assert_difference("Candidate.count") do
|
|
post create_candidate_path, params: { candidate:
|
|
{ name: 'new name', email: 'test@mailinator.com', experience: '0-3', quiz_id: quizzes(:fed).id } }
|
|
end
|
|
end
|
|
assert_redirected_to recruiter_path
|
|
assert flash[:success]
|
|
end
|
|
|
|
test "should fail creation with message" do
|
|
setup_auth
|
|
|
|
assert_difference("ActionMailer::Base.deliveries.size", 0) do
|
|
assert_difference("Candidate.count", 0) do
|
|
post create_candidate_path, params: { candidate:
|
|
{ name: 'new name', email: 'test@mailinatorcom', experience: '0-3', quiz_id: quizzes(:fed).id } }
|
|
end
|
|
end
|
|
assert :success
|
|
assert assigns(:candidate), "@candidate not present"
|
|
assert_match(/failed.*save/i, flash[:error])
|
|
end
|
|
end
|