I'm testing methods in my ApplicationController using anonymous controller
class (not sure if that's relevant).  I've somehow broken something such
that I do not have access to the routing variables that rails generates.

So rather than having something like 'response.should redirect_to
new_user_session_path' I'm having to go with 'response.should redirect_to
'/users/sign_in'

I've created a new project to check if I messed anything in spec_helper or
something else, and I've been unable to reproduce outside of my current
project.  I can access the route variables from other controller spec
classes, but not from the application_controller_spec.

Can anyone point me at where to look to start troubleshooting this?

Rails 3.0.5
$ gem list | grep rspec
rspec (2.5.0)
rspec-core (2.5.2)
rspec-expectations (2.5.0)
rspec-mocks (2.5.0)
rspec-rails (2.5.0)


Code snippets
/app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  protect_from_forgery

  def require_bar
    if
!user_signed_in?

      redirect_to new_user_session_path
      return
    end
   # check for bar here
  end
end

/spec/controllers/application_controller_spec.rb
require 'spec_helper'

describe ApplicationController do
  describe "#require_bar" do
    controller do
      before_filter :require_bar
      def index
        render :text => "", :status => 200
      end
    end

    context "when not signed in" do
      before :each do
        controller.stub(:user_signed_in?).and_return(false)
      end
      it "should fail gracefully by redirecting to log in" do
        get :index
        # This works
        response.should redirect_to '/users/sign_in'
        # this causes: undefined local variable or method
`new_merchant_session_path' for
#<RSpec::Core::ExampleGroup::Nested_1::Nested_2::Nested_1:0x000001034cd160>
        # response.should redirect_to new_user_session_path
      end
    end
  end
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to