Hi y''all The problem is probably because I''m a newb. I have a home controller in the admin namespace. My controller spec is working as expected, and the following example is passing: it "should show the home page if logged in" do controller.send("current_user=", User.new) get :index response.should render_template(''admin/home/index'') end But my story is failing on the "then" step: When "I view the home page" do get admin_url end Then "I see the home page" do response.should_not be_redirect # this passes response.code.should == "200" # this passes response.should have_text(/"Client Administration."/) #this fails, as response.body is nil response.should render_template("admin/home/index") #this fails, with actual being nil. end It''s as though the template isn''t actually being rendered for some reason. Any clues as to why this might be? My login story uses render_template in a similar way and it works successfully.. Cheers, Tim. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/rspec-users/attachments/20080402/71c8201c/attachment-0001.html
Hi, Made a little progress here. In one of my "given" steps I was posting to the login action. when I take this post out (and make other changes required), the should render_template works correctly. It''s as though the earlier post in the given step is meaning that the response isn''t set correctly after the later post.. Tim. On 02/04/2008, Tim Haines <tmhaines at gmail.com> wrote:> > Hi y''all > > The problem is probably because I''m a newb. I have a home controller in > the admin namespace. > > My controller spec is working as expected, and the following example is > passing: > > it "should show the home page if logged in" do > controller.send("current_user=", User.new) > get :index > response.should render_template(''admin/home/index'') > end > > > But my story is failing on the "then" step: > > When "I view the home page" do > get admin_url > end > > Then "I see the home page" do > response.should_not be_redirect # this passes > response.code.should == "200" # this passes > > response.should have_text(/"Client Administration."/) #this fails, as > response.body is nil > response.should render_template("admin/home/index") #this fails, with > actual being nil. > end > > It''s as though the template isn''t actually being rendered for some > reason. Any clues as to why this might be? My login story uses > render_template in a similar way and it works successfully.. > > Cheers, > > Tim. > >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/rspec-users/attachments/20080402/8d9a0ff5/attachment.html
And I suspect this is because @first_render isn''t being set for subsequent renders.... but it''s time to go home now. On 02/04/2008, Tim Haines <tmhaines at gmail.com> wrote:> > Hi, > > Made a little progress here. In one of my "given" steps I was posting to > the login action. when I take this post out (and make other changes > required), the should render_template works correctly. It''s as though the > earlier post in the given step is meaning that the response isn''t set > correctly after the later post.. > > Tim. > > On 02/04/2008, Tim Haines <tmhaines at gmail.com> wrote: > > > > Hi y''all > > > > The problem is probably because I''m a newb. I have a home controller in > > the admin namespace. > > > > My controller spec is working as expected, and the following example is > > passing: > > > > it "should show the home page if logged in" do > > controller.send("current_user=", User.new) > > get :index > > response.should render_template(''admin/home/index'') > > end > > > > > > But my story is failing on the "then" step: > > > > When "I view the home page" do > > get admin_url > > end > > > > Then "I see the home page" do > > response.should_not be_redirect # this passes > > response.code.should == "200" # this passes > > > > response.should have_text(/"Client Administration."/) #this fails, > > as response.body is nil > > response.should render_template("admin/home/index") #this fails, > > with actual being nil. > > end > > > > It''s as though the template isn''t actually being rendered for some > > reason. Any clues as to why this might be? My login story uses > > render_template in a similar way and it works successfully.. > > > > Cheers, > > > > Tim. > > > > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/rspec-users/attachments/20080402/4aff76f9/attachment.html
I got this way wrong. It was due to pages not rendering due to there being an error in the view (that I wasn''t aware of). The problem in the view was due to the test database not being up to date with the latest migrations... (so page was rendering correctly in dev mode) I''m happy I''ve persisted with it and now finally have a bunch of working stories... Tim. On 02/04/2008, Tim Haines <tmhaines at gmail.com> wrote:> > And I suspect this is because @first_render isn''t being set for subsequent > renders.... but it''s time to go home now. > > On 02/04/2008, Tim Haines <tmhaines at gmail.com> wrote: > > > > Hi, > > > > Made a little progress here. In one of my "given" steps I was posting > > to the login action. when I take this post out (and make other changes > > required), the should render_template works correctly. It''s as though the > > earlier post in the given step is meaning that the response isn''t set > > correctly after the later post.. > > > > Tim. > > > > On 02/04/2008, Tim Haines <tmhaines at gmail.com> wrote: > > > > > > Hi y''all > > > > > > The problem is probably because I''m a newb. I have a home controller > > > in the admin namespace. > > > > > > My controller spec is working as expected, and the following example > > > is passing: > > > > > > it "should show the home page if logged in" do > > > controller.send("current_user=", User.new) > > > get :index > > > response.should render_template(''admin/home/index'') > > > end > > > > > > > > > But my story is failing on the "then" step: > > > > > > When "I view the home page" do > > > get admin_url > > > end > > > > > > Then "I see the home page" do > > > response.should_not be_redirect # this passes > > > response.code.should == "200" # this passes > > > > > > response.should have_text(/"Client Administration."/) #this > > > fails, as response.body is nil > > > response.should render_template("admin/home/index") #this fails, > > > with actual being nil. > > > end > > > > > > It''s as though the template isn''t actually being rendered for some > > > reason. Any clues as to why this might be? My login story uses > > > render_template in a similar way and it works successfully.. > > > > > > Cheers, > > > > > > Tim. > > > > > > > > > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/rspec-users/attachments/20080403/53d59eec/attachment.html