[rspec-users] issue with edge rails and urls

J.D. Hollis jd at buttondowndesign.com
Mon Aug 27 15:52:17 EDT 2007


I just switched our project over to Edge Rails, and I'm running into  
this problem with all of my helper methods that call _url methods:

NoMethodError in 'ApplicationHelper home_link should generate a valid  
home link when User.current and Profile.current is not set'
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.<<
./spec/helpers/application_helper_spec.rb:17

Here's the relevant spec:

describe ApplicationHelper, "home_link" do
	before(:each) do
		User.current = nil
		Profile.current = nil
	end

	it "should generate a valid home link when User.current and  
Profile.current is not set" do
		home_link.should =~ /#{new_profile_url}/
	end

	it "should generate a valid home link when User.current is set" do
	 	User.current = mock_model(User)
	 	home_link.should =~ /#{dashboard_url}/
	end

	it "should generate a valid home link when Profile.current is set" do
	 	Profile.current = mock_model(Profile)
		home_link.should =~ /#{profile_url(Profile.current)}/
	end
end

And the method in ApplicationHelper:

def home_link
     if User.current.blank?
       if Profile.current.blank?
         link_to 'Get Started', new_profile_url
       else
         link_to 'My Profile', profile_url(Profile.current)
       end
     else
       link_to 'Dashboard', dashboard_url
     end
end

I'm using RSpec 1.0.8 and Rails revision 7360. Any ideas where to  
start looking for a fix or workaround?

Regards,
J.D.



More information about the rspec-users mailing list