require 'rails_helper'
include ActiveSupport::Testing::TimeHelpers

RSpec.describe Contabilidade::EstornoDeDespesaExtraOrcamentaria, type: :model do
	it{ is_expected.to belong_to( :despesa_extra_orcamentaria ) }
	it{ is_expected.to belong_to( :usuario ) }

	[:data_do_estorno, :justificativa, :despesa_extra_orcamentaria_id].each do |atributo|
		it{ is_expected.to validate_presence_of atributo }
	end

	it { is_expected.to allow_value('01/01/2016').for(:data_do_estorno) }
	it { is_expected.to_not allow_value('').for(:data_do_estorno) }
	it { is_expected.to_not allow_value('00/').for(:data_do_estorno) }

	let(:usuario) { FactoryBot.create(:usuario_comum) }

	xit 'inclui a data do estorno como o dia da criação ao salvar o estorno' do
		travel_to Date.today do
			@estorno = FactoryBot.create(:estorno_de_despesa_extra_orcamentaria, usuario_id: usuario.id)
			expect( @estorno.data_do_estorno ).to eq Date.today
		end
	end

	it 'atualiza o campo estornada da despesa_extra_orcamentaria' do
		Contabilidade::ContaExtraPorUnidadeOrcamentaria.find_or_create_by!(FactoryBot.attributes_for(:conta_extra_por_unidade_orcamentaria))
		estorno_de_despesa_extra_orcamentaria = FactoryBot.create(:estorno_de_despesa_extra_orcamentaria)
		expect(estorno_de_despesa_extra_orcamentaria.despesa_extra_orcamentaria.estornada?).to eq true
	end

end
