testing: click_link error I can't track down

Here is the error I am getting:

.....F

Failures:   1) LayoutLinks should have the right links on the layout      Failure/Error: click_link "Sign up"      Could not find link with text or title or id "Sign up"      # ./spec/requests/layout_links_spec.rb:37:in `block (2 levels) in <top (required)>'

Finished in 0.28358 seconds 6 examples, 1 failure

Here is the test file for LayoutLinks. The last 'it block' has the click_link that is giving me the problem:

#spec/requests/layout_links_spec.rb:

require 'spec_helper'

describe "LayoutLinks" do   it "should have a Home page at: /" do     get '/'     response.should have_selector('title', :content => "Home")   end

  it "should have an About page at: /about" do     get '/about'     response.should have_selector('title', :content => "About")   end

  it "should have a Contact page at: /contact" do     get '/contact'     response.should have_selector('title', :content => "Contact")   end

  it "should have a Help page at: /help" do     get '/help'     response.should have_selector('title', :content => "Help")   end

  it "should have a Sign up page at: /signup" do     get "/signup"     response.should have_selector('title', :content => "Sign up")   end

  it "should have the right links on the layout" do     visit root_path     click_link "About"     response.should have_selector('title', :content => "About")     click_link "Contact"     response.should have_selector('title', :content => "Contact")     click_link "Help"     response.should have_selector('title', :content => "Help")     click_link "Sign up"     response.should have_selector('title', :content => "Sign up")     click_link "Home"     response.should have_selector('title', :content => "Home")   end

The other click_link's pass their tests. It's only the 'Sign up' link that is giving me the problem. The only difference I can discern is that the page with the 'Sign up' link is handled by a different controller: Users v. Pages.

Here is the application layout:

application.html.erb:

Cross posted to:

I presume that you have looked at the html generated for that page (View > Page Source or similar in your browser) to see whether it is the html that is at fault or the test. If it is the html then what html is generated for that link and what do you expect it to be to pass the test? If you think the html is correct and the test should pass then show us the html for the link.

Colin

Hi,

Thanks for the response. When I manually click on the 'Sign up' link on the Home page, it successfully displays the following page (which is what I want):

app/views/users/new.html.erb

Hi,

Thanks for the response. When I manually click on the 'Sign up' link on the Home page, it successfully displays the following page (which is what I want):

app/views/users/new.html.erb ---------------------------- <h1>Users#new</h1> <p>Find me in app/views/users/new.html.erb</p>

And if I click on View Source for the Home page, the 'Sign up' link is there (not to be confused with the "Sign in" link):

If you look at your spec, the line above you've gone to the help page, and it's on that page that a sign up link is being looked for. It's as if you, in a real browser, was going to the home page and (without opening links in new tabs etc) clicked on links in the order specified, waiting for the page to load after each click

Fred

Thanks Fred. After spending hours creating a duplicate app, I happened to cut and paste the 'Sign up' click_link in a different order, and the tests passed. After pasting the 'Sign up' click_link in several different places and examining the results, I came up with the explanation you posted.

I was about to give up! I would have seen your explanation eventually, so thanks.