require 'rails_helper'

RSpec.describe Contabilidade::InssPessoaFisica, type: :model do
	it { is_expected.to belong_to :inss }

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

	it { is_expected.to validate_numericality_of( :base_de_calculo ).is_greater_than(0).is_less_than_or_equal_to(100) }
	it { is_expected.to validate_numericality_of( :aliquota ).is_greater_than(0).is_less_than_or_equal_to(100) }

	describe '#immutable, não permite mudança do atributo :inss_id' do
		context 'quando há uma tentativa alteração no :inss_id' do
			it 'retorna mensagem de erro' do
				inss_pf = FactoryBot.create :contabilidade_inss_pessoa_fisica
				inss_pf.inss_id += 1
				inss_pf.save

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