require 'rails_helper'

RSpec.describe Base::TipoDeEsfera, type: :model do
  it { is_expected.to belong_to(:modulo).required }

	[:descricao, :modulo_id, :modulo_type].each do |atributo|
		it{ is_expected.to validate_presence_of atributo }
	end

	[:descricao].each do |atributo|
		it{ is_expected.to validate_uniqueness_of( atributo ).scoped_to(:modulo_id, :modulo_type)}
	end

	it "não permite alterações no atributo modulo_id" do
		tipo_de_esfera = FactoryBot.create( :tipo_de_esfera, :orcamento_2016 )
		tipo_de_esfera.modulo_id += 1
		tipo_de_esfera.save
		expect( tipo_de_esfera.errors[:modulo_id] ).to include "não pode ser alterado"
	end

	it "não permite alterações no atributo modulo_type" do
		tipo_de_esfera = FactoryBot.create( :tipo_de_esfera, :orcamento_2016 )
		tipo_de_esfera.modulo_type = 'Ppa::Ppa'
		tipo_de_esfera.save
		expect( tipo_de_esfera.errors[:modulo_type] ).to include "não pode ser alterado"
	end
end
