# frozen_string_literal: true
require 'test_helper'

class RecruiterControllerTest < ActionDispatch::IntegrationTest
  test "should get login" do
    get recruiter_login_url
    assert_response :success
  end

  test 'should logout and reset session' do
    auth_recruiter
    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
    auth_recruiter
    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
    auth_recruiter
    get recruiter_url
    assert_response :success
    assert assigns(:candidates), "@candidates not present"
  end

  test 'should have edit links' do
    auth_recruiter
    get recruiter_url
    assert_response :success
    assert_select "a[href='#{edit_candidate_path(candidates(:martha))}']"
  end
end
