require 'rails_helper'

feature 'DocumentVerifications' do

  background do
    login_as_manager
  end

  scenario 'Verifying a level 3 user shows an "already verified" page' do
    user = create(:user, :level_three)

    visit management_document_verifications_path
    fill_in 'document_verification_document_number', with: user.document_number
    click_button 'Check'

    expect(page).to have_content "already verified"
  end

  scenario 'Verifying a level 2 user displays the verification form' do

    user = create(:user, :level_two)

    visit management_document_verifications_path
    fill_in 'document_verification_document_number', with: user.document_number
    click_button 'Check'

    expect(page).to have_content "Vote proposals"

    click_button 'Verify'

    expect(page).to have_content "already verified"

    expect(user.reload).to be_level_three_verified
  end

  scenario 'Verifying a user which does not exist and is not in the census shows an error' do

    expect_any_instance_of(Verification::Management::Document).to receive(:in_census?).and_return(false)

    visit management_document_verifications_path
    fill_in 'document_verification_document_number', with: "inexisting"
    click_button 'Check'

    expect(page).to have_content "This document is not registered"
  end

  scenario 'Verifying a user which does exists in the census but not in the db redirects allows sending an email' do

    visit management_document_verifications_path
    fill_in 'document_verification_document_number', with: '1234'
    click_button 'Check'

    expect(page).to have_content "Please introduce the email used on the account"
  end

  scenario 'Document number is format-standarized' do

    visit management_document_verifications_path
    fill_in 'document_verification_document_number', with: '12345 - h'
    click_button 'Check'

    expect(page).to have_content "Document number: 12345H"
  end

  scenario 'User age is checked' do
    expect_any_instance_of(Verification::Management::Document).to receive(:under_sixteen?).and_return(true)

    visit management_document_verifications_path
    fill_in 'document_verification_document_number', with: '1234'
    click_button 'Check'

    expect(page).to have_content "You must be over 16 to verify your account."
  end

end