require 'rails_helper'

RSpec.describe Contabilidade::InssPessoaJuridica, type: :model do
	it { is_expected.to belong_to :orcamento }

	it { is_expected.to validate_uniqueness_of( :codigo ).scoped_to( :orcamento_id ) }

	[:orcamento_id, :codigo, :descricao, :aliquota].each { |atributo| it { is_expected.to validate_presence_of atributo } }

	it { is_expected.to validate_numericality_of :codigo }
	it { is_expected.to validate_numericality_of( :aliquota ).is_greater_than(0).is_less_than(100) }

	it 'validates immutable :orcamento_id' do
		irrf_servicos_profissionais = FactoryBot.create :irrf_pessoa_juridica_servicos_profissionais
		irrf_servicos_profissionais.orcamento_id += 1
		irrf_servicos_profissionais.save

		expect(irrf_servicos_profissionais.errors[:orcamento_id]).to include 'não pode ser alterado'
	end

	describe '#atribui_codigo_do_insspj' do
		it 'incrementa automaticamente o código dos serviços relacionados ao irpj' do
			FactoryBot.create :contabilidade_inss_pessoa_juridica
			irrf_servicos_profissionais_dois = FactoryBot.create :contabilidade_inss_pessoa_juridica, codigo: ''

			expect(irrf_servicos_profissionais_dois.codigo).to eq '0002'
		end
	end

end
