Do I need to spec an AR. If yes, what is the best way to spec this. here is the code - def index @deals = Deal.paginate(:all, :conditions => prepare_search_conditions, :order => ''created_at DESC'', :page => params[:page] ) if request.xhr? render :update do |page| page.replace_html "table", :partial => "/deals/front/listing" end end I am new to Rspec. Is this the right way? it "should list all deals" do controller.stub!(:prepare_search_conditions).and_return(true) Deal.should_receive(:paginate).with(:all, {:conditions=>true, :order=>"created_at DESC", :page=>nil}).and_return(@deals) get :list controller.expect_render(:partial => ''/deals/cms/list'') end Thanks, Namrata. -- Posted via http://www.ruby-forum.com/.
Sorry I pasted the wrong spec. Here is correct one - it "should show deals listing" do controller.stub!(:prepare_search_conditions).and_return(true) Deal.should_receive(:paginate).and_return(@deals) get :index controller.expect_render(:partial => ''/deals/front/listing'') end> Thanks, > Namrata.-- Posted via http://www.ruby-forum.com/.
Namrata Tiwari wrote:> Sorry I pasted the wrong spec. > Here is correct one - > > it "should show deals listing" do > controller.stub!(:prepare_search_conditions).and_return(true) > Deal.should_receive(:paginate).and_return(@deals) > > get :index > controller.expect_render(:partial => ''/deals/front/listing'') > end > > >> Thanks, >> Namrata. >> > >Try setting your headers before your get request.. Like so: @request.env["HTTP_ACCEPT"] = "application/javascript" -Ben
Hi Namrata, I recently ran into the same problem as well. The trick was to do something like: response.should have_rjs(some_arguments) The ''some_arguments'' threw me off for a while but I believe you need :chained_replace_html. I wrote a little piece on it here: http://www.rubytutorials.net/2008/02/29/small-rspec-revelations-rjs/ Hope you find it helpful. With kind regards, Harm On 5 mrt 2008, at 15:01, rspec-users-request at rubyforge.org wrote:> Do I need to spec an AR. If yes, what is the best way to spec this. > here is the code - > > def index > @deals = Deal.paginate(:all, :conditions => > prepare_search_conditions, :order > => ''created_at DESC'', :page => > params[:page] > ) > if request.xhr? > render :update do |page| > page.replace_html "table", :partial => "/deals/front/listing" > end > end > > I am new to Rspec. Is this the right way? > > it "should list all deals" do > controller.stub!(:prepare_search_conditions).and_return(true) > Deal.should_receive(:paginate).with(:all, {:conditions=>true, > :order=>"created_at DESC", > :page=>nil}).and_return(@deals) > get :list > controller.expect_render(:partial => ''/deals/cms/list'') > end > > Thanks, > Namrata.