David Kahn
2010-Oct-02 19:15 UTC
Re: Lacking some enlightenment on why rspec says I have a 200 response when I do not (SOLVED)
Please pretend I never sent this. My test had the wrong action (new instead of index). No duh it was not hitting the code. On Sat, Oct 2, 2010 at 1:58 PM, David Kahn <dk-rfEMNHKVqOwNic7Bib+Ti1W1rNmOCjRP@public.gmane.org>wrote:> I am writing a few low level tests for my controllers to verify security. > New to rspec and am seeing some unexpected activity: > > If I run this spec: > > describe "GET index" do > it "does not load for guest role" do > get :new > flash[:notice].should match RESTRICTED_PAGE_NOTICE > response.should redirect_to(login_path) > end > > Which hits > > class PracticesController < ApplicationController > > def index > @practices = Practice.all > > respond_to do |format| > format.html # index.html.erb > end > end > > end > > But the controller also inherits from the application controller which: > > class ApplicationController > ... > when ''practices'' > flash[:notice] = RESTRICTED_PAGE_NOTICE > redirect_to login_path if action_name != ''new'' && action_name !> ''create'' > end > > I have verified the redirect and message in a browser, so this code is > executing as expected in ''reality''. > > > Then why do I get this error: > > 1) PracticesController GET index does not load for guest role > Failure/Error: response.should redirect_to(login_path) > *Expected response to be a <:redirect>, but was <200>.* > Expected block to return true value. > > > It is true, if the controller is isolated and not inheriting from the app > controller, it would be a 200. But with the app controller it should > redirect before it ever hits the method. > > The line in the app controller "flash[:notice] = RESTRICTED_PAGE_NOTICE" > clearly gets evaluated as the line in the spec "flash[:notice].should match > RESTRICTED_PAGE_NOTICE" passes, *BUT* this line in the app controller > "redirect_to login_path if action_name != ''new'' && action_name != ''create''" > does not get evaluated as rspec says I have a 200 response? I am really > confused and don''t like what feels to be a weird paradox.... > > Can anyone enlighten me? > > Thanks, > > David > > > >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.