require 'rails_helper'


RSpec.describe Contabilidade::RetornosBancariosController, type: :controller do
	sign_in_admin
	cria_configuracao_default
	set_orcamento_na_sessao

	# Isso deve retornar o mínimo de atributos obrigatórios para criar um
	# Contabilidade::RetornoBancario válido.

	let(:atributos_validos) {
		FactoryBot.attributes_for( :contabilidade_retorno_bancario )
	}

	let(:atributos_invalidos) {
		{ tipo: nil}
	}


	describe "GET #index" do
		it "atribui a lista de retornos_bancarios à @retornos_bancarios" do
			retorno_bancario = Contabilidade::RetornoBancario.create! atributos_validos
			get :index
			expect(response).to be_successful
		end
	end

	describe "GET #show" do
		it "atribui a retorno_bancario requisitado(a) à @retorno_bancario" do
			retorno_bancario = Contabilidade::RetornoBancario.create! atributos_validos
			get :show, params: {id: retorno_bancario.to_param}
			expect(response).to be_successful
		end
	end

	describe "GET #new" do
		it "atribui um(a) novo(a) retorno_bancario à @retorno_bancario" do
			get :new
			expect(response).to be_successful
		end
	end

	describe "POST #create" do
		context "com parâmetros válidos" do
			it "redireciona para o(a) retorno_bancario criado(a)" do
				post :create, params: {:contabilidade_retorno_bancario => atributos_validos}
				expect(response).to redirect_to(Contabilidade::RetornoBancario.last)
			end
		end

		context "com parâmetros inválidos" do
			it "re-renderiza o template 'new'" do
				post :create, params: {contabilidade_retorno_bancario: atributos_invalidos}
				expect(response).to render_template("new")
			end
		end
	end
end
