require 'rails_helper'

RSpec.describe Contabilidade::ValoresDoConvenioController, type: :controller do
	sign_in_admin
	set_contabilidade_na_sessao

	describe "GET #edit" do
		before(:each) {
			@convenio = FactoryBot.create( :convenio0001 )
		}

		it "renderiza o convênio requisitado" do
			get :edit, convenio_id: @convenio.id

			expect( assigns(:convenio) ).to eq @convenio
		end

		it "renderiza o template 'edit'" do
			get :edit, convenio_id: @convenio.id

			expect( response ).to render_template('edit')
		end
	end

	describe "PUT #update" do
		before(:each) {
			@convenio = FactoryBot.create( :convenio0001 )
		}

		it 'atualiza os valores do convênio, do convênio requisitado' do
			valor_do_convenio = @convenio.reload.valores_do_convenio.first
			outro_valor_do_convenio = @convenio.reload.valores_do_convenio.last

			atributos =  {
				"valores_do_convenio_attributes" => {
						"0" => {
							"id" => valor_do_convenio.id,
							"valor" => "400"
						},
						"1" => {
							 "id" => outro_valor_do_convenio.id,
							"valor" => "500"
						}
				}
			}

			expect {
				put :update, convenio_id: @convenio.id, contabilidade_convenio: atributos
			}.to change{@convenio.valores_do_convenio.sum(:valor)}.from(0).to( 900 )

		end
	end

end
