require 'rails_helper'

RSpec.describe Base::Tecnico, type: :model do

	[:nome, :ordem_de_impressao, :modulo_id].each { |atributo| it{ is_expected.to validate_presence_of atributo }}

	it "não permite alterações no atributo ppa_id" do
		tecnico = FactoryBot.create( :tecnico, :ppa_2014, :orgao )
		tecnico.modulo_id += 1
		tecnico.save
		expect( tecnico.errors[:modulo_id] ).to include "não pode ser alterado"
	end

	describe 'validações de presença e ausência dos atributos' do
		before(:each) do
			subject { FactoryBot.build :tecnico, :ppa_2014 }
		end

		context 'quando o técnico é de um orgão' do
			before(:each) do
			  subject.de_um_orgao = 'true'
			end

			it { is_expected.to validate_presence_of :cargo }
			it { is_expected.to validate_presence_of :orgao_id }
			it { is_expected.to validate_absence_of :consultoria}
		end

		context 'quando o técnico é não é de um orgão' do
			before(:each) do
			  subject.de_um_orgao = 'false'
			end

			it { is_expected.to validate_presence_of :consultoria}
			it { is_expected.to validate_absence_of :orgao_id }
			it { is_expected.to validate_absence_of :cargo }
		end
	end
end
