require 'rails_helper'

RSpec.describe GestaoDeEstoque::Almoxarifado, type: :model do
  cria_configuracao_default

  it{ is_expected.to belong_to(:almoxarifado_principal).class_name("GestaoDeEstoque::Almoxarifado") }
  it{ is_expected.to belong_to(:cidade).class_name("Base::Cidade") }

  it{ is_expected.to have_many(:unidades_orcamentarias_do_almoxarifado).class_name("GestaoDeEstoque::UnidadeOrcamentariaDoAlmoxarifado") }
  it{ is_expected.to have_many(:sub_almoxarifados).class_name("GestaoDeEstoque::Almoxarifado") }

  it { is_expected.to accept_nested_attributes_for(:unidades_orcamentarias_do_almoxarifado).allow_destroy(true) }

  it { is_expected.to validate_length_of(:codigo).is_at_most(3) }
  it { is_expected.to validate_length_of(:nome).is_at_most(100) }
  it { is_expected.to validate_length_of(:email).is_at_most(120) }
  it { is_expected.to validate_length_of(:cep).is_equal_to(8) }
  it { is_expected.to validate_length_of(:logradouro).is_at_most(120) }
  it { is_expected.to validate_length_of(:numero).is_at_most(8) }
  it { is_expected.to validate_length_of(:bairro).is_at_most(60) }
  it { is_expected.to validate_length_of(:complemento).is_at_most(80) }

  [:codigo, :nome].each do |atributo|
		subject { FactoryBot.build(:gestao_de_estoque_almoxarifado) }
		it{ is_expected.to validate_presence_of(atributo) }
	end
end
