ruby - Rails - Cannot get Rspec click link to work -


hey doing click_link in rspec rails checking linked page content. content is on page it's still giving me error not.

the error

failure/error: page.should have_selector('h1', :text => "reset password") 

this spec doing

  1. visits log_in_path
  2. clicks forgotten password
  3. which in effect visits new_password_reset_path
  4. looks <h1> reset password </h1>

password_resets_controller_spec.rb (the spec)

require 'spec_helper'  describe passwordresetscontroller     "emails user when requesting password reset"         user = factorygirl.build(:user)         visit log_in_path         click_link "forgotten password?"         current_path.should eq(new_password_reset_path)         page.should have_selector('h1', :text => "reset password")     end end 

new.html.haml (log_in_path)

%h1 log in  = form_tag sessions_path   %p     = label_tag :email     = text_field_tag :email, params[:email]   %p     = label_tag :password     = password_field_tag :password   %p.button     %input{name: "commit", type: "submit", value: "log in"}   .field     = label_tag :remember_me     = check_box_tag :remember_me, 1, params[:remember_me]   %p     = link_to "forgotten password?", new_password_reset_path 

new.html.haml (the page should go after clicking link)

%h1 reset password  = form_tag password_resets_path, :method => :post   .field     = label_tag :email     = text_field_tag :email, params[:email]   .actions     = submit_tag "reset password" 

routes.rb

someapp::application.routes.draw   "password_resets/new"   "sessions/new"   resources :sessions   resources :password_resets   resources :email_activations   resources :users     collection        :accept_invitation     end    end   "static_pages/home"   "static_pages/help"   root to: 'static_pages#home'   match "sign_up",  to: "users#new"   match '/help',    to: 'static_pages#help'   match '/log_in',  to: 'sessions#new'   match '/log_out', to: 'sessions#destroy'   end 

it looks test code in controller spec instead of integration spec. have in spec file integration test, not controller test. page , visit part of capybara dsl , not available in controller specs. should either in spec/requests directory older versions of rspec-rails , capybara, or spec/features directory if using rspec-rails ~> 2.11.1 & capybara ~>2.0.0beta.

source: http://rubydoc.info/gems/rspec-rails/file/capybara.md

update:

since using older version of capybara, rename , move spec file to

someapp/spec/requests/password_resets_spec.rb

or run generator , put in right directory , file name

rails generate integration_test password_reset


Comments