# frozen_string_literal: true
require 'test_helper'

class CandidateTest < ActiveSupport::TestCase
  test "test_hash is auto generated" do
    candidate = Candidate.create(name: 'new name',
                                 email: 'test@mailinator.com',
                                 experience: '0-3',
                                 project: 'Client',
                                 quiz_id: quizzes(:fed).id)

    assert candidate.test_hash.present?
  end

  test "should encrypt emails" do
    email = 'test@mailinator.com'
    candidate = Candidate.create(name: 'new name',
                                 email: email,
                                 experience: '0-3',
                                 project: 'Client',
                                 position: 'full-time',
                                 recruiter_id: users(:recruiter).id,
                                 quiz_id: quizzes(:fed).id)

    sql = "select email from candidates where id = #{candidate.id};"
    enc_email = ActiveRecord::Base.connection.execute(sql).first.first

    refute_equal email, enc_email
  end

  test "can build reviewer records" do
    candidate = candidates(:dawn)

    candidate.build_reviews
    assert_equal 3, candidate.votes.count
  end

  test 'can get last answer timestamp' do
    candidate = candidates(:roy)
    roy_last = answers(:roy2).updated_at

    assert_equal roy_last, candidate.last_answered_at
  end

  test 'gillian is stale with no answers' do
    candidate = candidates(:gillian)

    assert candidate.stale?
  end

  test 'roy is stale with answers' do
    candidate = candidates(:roy)

    assert candidate.stale?
  end
end
