require 'rails_helper'

RSpec.describe GestaoDeEstoque::ResponsavelDoAlmoxarifado, type: :model do
  it { is_expected.to belong_to(:almoxarifado) }
  it { is_expected.to belong_to(:agente_publico_municipal) }

  [:data_de_entrada, :agente_publico_municipal_id].each do |atributo|
    it { is_expected.to validate_presence_of(atributo) }
  end

  describe "#data_entrada_em_ano_possivel" do
    it "é valido quando é a partir de 1990" do
      responsavel = FactoryBot.build(:gestao_de_estoque_responsavel_do_almoxarifado, data_de_entrada: Date.today)
      responsavel.validate

      expect(responsavel.errors[:data_de_entrada]).to_not include("Precisa ser a partir do ano 1990")
    end
    it "é invalido quando é infrior ao ano 1990" do
      responsavel = FactoryBot.build(:gestao_de_estoque_responsavel_do_almoxarifado, data_de_entrada: "01/01/1989")
      responsavel.validate

      expect(responsavel.errors[:data_de_entrada]).to include("Precisa ser a partir do ano 1990")
    end
  end

  describe "#data_saida_em_ano_possivel" do
    it "é valido quando é a partir de 1990" do
      responsavel = FactoryBot.build(:gestao_de_estoque_responsavel_do_almoxarifado, data_de_saida: Date.today)
      responsavel.validate

      expect(responsavel.errors[:data_de_saida]).to_not include("Precisa ser a partir do ano 1990")
    end
    it "é invalido quando é infrior ao ano 1990" do
      responsavel = FactoryBot.build(:gestao_de_estoque_responsavel_do_almoxarifado, data_de_saida: "01/01/1989")
      responsavel.validate

      expect(responsavel.errors[:data_de_saida]).to include("Precisa ser a partir do ano 1990")
    end
  end

  describe "#data_portaria_em_ano_possivel" do
    it "é valido quando é a partir de 1990" do
      responsavel = FactoryBot.build(:gestao_de_estoque_responsavel_do_almoxarifado, data_da_portaria: Date.today)
      responsavel.validate

      expect(responsavel.errors[:data_da_portaria]).to_not include("Precisa ser a partir do ano 1990")
    end
    it "é invalido quando é infrior ao ano 1990" do
      responsavel = FactoryBot.build(:gestao_de_estoque_responsavel_do_almoxarifado, data_da_portaria: "01/01/1989")
      responsavel.validate

      expect(responsavel.errors[:data_da_portaria]).to include("Precisa ser a partir do ano 1990")
    end
  end
end
