require 'rails_helper'

RSpec.describe Contabilidade::TransacaoDaConciliacao, type: :model do
  it { is_expected.to belong_to(:conciliacao_bancaria).class_name("Contabilidade::ConciliacaoBancaria") }
  it { is_expected.to belong_to(:movimentacao).class_name("Contabilidade::MovimentacaoDaContaBancaria") }

  [:tipo, :nome, :valor, :data, :fit_id, :conciliacao_bancaria_id].each do |atributo|
    it{ is_expected.to validate_presence_of(atributo) }
  end


  describe "#conta_bancaria_por_unidade_orcamentaria_principal" do
    context "Quando tem conta bancaria por unidade orcamentaria principal" do
      it "Deve retornar a unidade" do
        transacao = FactoryBot.create(:contabilidade_transacao_da_conciliacao, :com_unidade_orcamentaria)
        expect(transacao.conta_bancaria_por_unidade_orcamentaria_principal).to eq Base::ContaBancariaPorUnidadeOrcamentaria.last
      end
    end
    context "Quando não tem conta bancaria por unidade orcamentaria principal" do
      it "Não retornar nada" do
        transacao = FactoryBot.create(:contabilidade_transacao_da_conciliacao, :com_unidade_orcamentaria)
        Base::ContaBancariaPorUnidadeOrcamentaria.last.update_attribute(:principal, false)
        expect(transacao.conta_bancaria_por_unidade_orcamentaria_principal).to eq nil
      end
    end
  end
end
