require 'rails_helper'

RSpec.describe Tcm::ErrosDosLotesController, type: :controller do
	sign_in_admin
	cria_configuracao_default

	let(:orcamento) {
		FactoryBot.attributes_for(:orcamento_2016)
	}

	describe "GET #index" do
		it "atribui a lista de erros_dos_lotes à @erros_dos_lotes" do
			erros_do_lote = Tcm::ErrosDoLote.create!(FactoryBot.attributes_for :erros_do_lote)
			get :index, exercicio: orcamento[:exercicio]
			expect(assigns(:erros_dos_lotes)).to eq([erros_do_lote])
		end
	end

	describe "GET #show" do
		it "atribui a erros_do_lote requisitado(a) à @erros_do_lote" do
			erros_do_lote = Tcm::ErrosDoLote.create!(FactoryBot.attributes_for :erros_do_lote)
			get :show, params: {id: erros_do_lote.to_param}
			expect(assigns(:erros_do_lote)).to eq(erros_do_lote)
		end
	end

	describe "GET #new" do
		before(:each) do
			orcamento = FactoryBot.create(:orcamento_2016)
		end
		it "atribui um(a) novo(a) erros_do_lote à @erros_do_lote" do
			get :new, exercicio: orcamento[:exercicio]
			expect(assigns(:erros_do_lote)).to be_a_new(Tcm::ErrosDoLote)
		end

		it "atribui um(a) novo(a) lote à @lote e não está configurado o código do municipio no tcm" do
			configuracao = Configuracao.last
			configuracao.codigo_do_municipio_no_tcm = nil
			configuracao.save(validate: false)
			get :new, exercicio: orcamento[:exercicio]
			expect(response).to redirect_to(tcm_erros_dos_lotes_url(exercicio: orcamento[:exercicio]))
		end
	end
end
