require 'rails_helper'

RSpec.describe Ppa::CidadaosController, type: :controller do
	sign_in_admin
	set_ppa_id_na_sessao

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

	describe "GET #index" do
		it "atribui a lista de cidadaos à @cidadaos" do
			cidadao = PpaParticipativo::Cidadao.create! atributos_validos
			get :index
			expect(assigns(:cidadaos)).to eq([cidadao])
		end

		context 'quando o formato é PDF' do
			it 'retorna arquivo pdf' do
				get :index, {format: :pdf}
				expect(response).to have_http_status(:ok)
				expect(response.headers["Content-Type"]).to eq "application/pdf"
			end

			it 'retorna apenas os cidadãos participantes do processo' do
				cidadao_1 = FactoryBot.create( :cidadao )
				cidadao_2 = FactoryBot.create( :cidadao )
				cidadao_3 = FactoryBot.create( :cidadao )

				proposta = cidadao_1.propostas.create(FactoryBot.attributes_for :ppa_proposta)
				cidadao_2.votos_das_propostas.create(proposta_id: proposta)

				get :index, {format: :pdf}
				expect(assigns(:cidadaos)).to include(cidadao_1)
				expect(assigns(:cidadaos)).to include(cidadao_2)
				expect(assigns(:cidadaos)).not_to include(cidadao_3)
			end
		end
	end
end
