Template error no rspec-rails

0

I'm using rspec-rails to test my application, however when testing a view that uses Ransak for filters I get the following return error:

1) admin/cities/index renders a list of admin_cities
   Failure/Error: render
   ActionView::Template::Error:
   No Ransack::Search object was provided to search_form_for!

My controller

def index
  @q = City.search(params[:q])
  @cities = @q.result(distinct: true).page params[:page]
end

My view

= search_form_for [:admin, @q] do |f|
  = f.text_field :nome_cont
  table
    tr
      th Nome
    - @cities.each do |city|
      tr
        td = city.nome

My test

require 'rails_helper'
RSpec.describe "admin/cities/index", type: :view do
  city_params1 = {codigo_municipio: 1, nome: 'Maringá', uf: 'PR', municipio: 1}
  city_params2 = {codigo_municipio: 2, nome: 'Maringá2', uf: 'PR', municipio: 1}
  before(:each) do
    assign(:admin_cities, [
      City.create!(city_params1),
      City.create!(city_params2)
    ])
  end
  it "renders a list of admin_cities" do
    render
  end
end

What could solve this?

    
asked by anonymous 23.04.2015 / 20:25

1 answer

0

Add the following code at the beginning of the test:

before(:each) do
  assign :q, City.ransack
end
    
23.04.2015 / 21:27