require 'rails_helper'

RSpec.describe Loa::OrgaosController, type: :controller do
	set_orcamento_na_sessao
	include_examples( 'nested_controller_spec',
		Loa::Orgao,
		atributos_validos: lambda {
			FactoryBot.attributes_for( :loa_secretaria_de_saude, :orcamento_2016 )
		},

		atributos_validos_do_objeto_em_outro_escopo: lambda {
			FactoryBot.attributes_for( :loa_secretaria_de_saude, :orcamento_2017 )
		},

		atributos_novos: lambda {
			{ nome: 'Novo nome' }
		},

		atributos_invalidos: lambda {
			{ nome: '' }
		},

		parametro_do_objeto_pai: 'exercicio',
		nome_do_objeto_pai: 'orcamento'
	)


	describe "GET #importar" do
		it "lista de convênios não importados" do
			@orgao = FactoryBot.create( :orgao_secretaria_da_fazenda, :ppa_2014 )
			@orcamento = Orcamento.last
			@orcamento.ppa_id =  @orgao.ppa_id
			@orcamento.save(validate: false)

			get :prepara_importacao, { exercicio: @orcamento.exercicio }

			expect(assigns(:ppa_orgaos)).to eq([@orgao])
		end
	end

	context 'convênios selecionados' do
		it 'deve conter um convenio marcado como importado' do
				@orgao_do_ppa = FactoryBot.create( :orgao_gabinete_do_secretario, :ppa_2020 )
				@orcamento = Orcamento.last
				@orcamento.ppa_id =  @orgao_do_ppa.ppa_id
				@orcamento.save(validate: false)

				orgao = FactoryBot.build(:loa_desenvolvimento_economico, :orcamento_2016)
				orgao.orgao_id = @orgao_do_ppa.id
				orgao.importar_dados_do_orgao
				orgao.save

				expect(@orcamento.orgaos.where("orgao_id is not null").count).to be > 0
		end
	end
end
