require 'rails_helper'

RSpec.describe Contabilidade::EventoContabil, type: :model do
	it { is_expected.to validate_presence_of :nome }
	it { is_expected.to validate_presence_of :acao_do_sistema_id }
	it { is_expected.to validate_presence_of :orcamento_id }
	it { is_expected.to belong_to :acao_do_sistema}
	it { is_expected.to belong_to :orcamento}
	it { is_expected.to have_many(:contas_por_eventos_contabeis).dependent(:restrict_with_exception) }
	it { is_expected.to have_many(:movimentacoes_do_plano_de_contas).through(:contas_por_eventos_contabeis) }
	it { is_expected.to have_many(:lancamentos_manuais_do_evento_contabil) }

	describe '#immutable' do
		it "não permite alterações no atributo orcamento_id" do
			evento_contabil = FactoryBot.create( :evento_contabil, :empenhar )
			evento_contabil.orcamento_id = evento_contabil.orcamento_id + 1
			evento_contabil.save
			expect( evento_contabil.errors[:orcamento_id] ).to include "não pode ser alterado"
		end
	end
end
