Kaminari rspec testing undefined method page.

Someone use kaminari for pagination?
I'm doing some tests but I don't know why I have an undefined method page.
Here is my simple test:

describe "GET index" do
    it "assigns all fire_preventions as @fire_preventions" do
      FirePrevention.stub(:search) { [mock_fire_prevention] }
      get :index
      assigns(:fire_preventions).should eq([mock_fire_prevention])
    end
  end

The index action is:

def index
    @search = FirePrevention.search(params[:search])
    @fire_preventions =
@search.page(params[:page]).per(Settings.fire_preventions_per_page)
end

I'm using meta_search.

The test error is:

Failure/Error: get :index
     NoMethodError:
       undefined method `page' for [#<FirePrevention:0x976
@name="FirePrevention_1002">]:Array

Someone use kaminari for pagination?
I'm doing some tests but I don't know why I have an undefined method page.
Here is my simple test:

describe "GET index" do
   it "assigns all fire_preventions as @fire_preventions" do
     FirePrevention.stub(:search) { [mock_fire_prevention] }
     get :index
     assigns(:fire_preventions).should eq([mock_fire_prevention])
   end
end

The index action is:

def index
   @search = FirePrevention.search(params[:search])
   @fire_preventions =
@search.page(params[:page]).per(Settings.fire_preventions_per_page)
end

I'm using meta_search.

The test error is:

Failure/Error: get :index
    NoMethodError:
      undefined method `page' for [#<FirePrevention:0x976
@name="FirePrevention_1002">]:Array

It looks like you are getting back an Array as your search result the contains lots of FirePrevention objects. While a FirePrevention object may have a page method there is no page method for an Array. You need to loop over the returned Array to access each object in it to get to that object's page method.

B.

mmmmmmm.... I need an example for that, there aren't examples with
rspec anche kaminari in internet.

Here's my chance to give back :wink:

Make a file called kaminari.rb in /specs/support

Puts this in it:

    module Kaminari::ActionViewExtension::InstanceMethods
      def paginate(scope, options = {}, &block)
      end
    end

Make sure this file is loaded in your spec_helper.rb:

    Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

You should probably have this line already, but check just to be sure.

That should do it.

I don't know a lot about rails, but I actually knew this answer :wink: