I just have learnt how cool RSpec and Cabybara is, and now working around it to learn writing actual test.
I am trying to check if after clicking a link, there is a redirection to a specific page.
Below is the scenario
1) I have a page /projects/list - I have an anchor with html "Back" and it links to /projects/show Below is the test i wrote in rspec describe "Sample" do describe "GET /projects/list" do it "sample test" do visit "/projects/list" click_link "Back" assert_redirected_to "/projects/show" end end end
The test fails with a failure message like below
Failure/Error: assert_redirected_to "/projects/show" ArgumentError: @request must be an ActionDispatch::Request
Please suggest me on how i should test the redirection and what am i doing wrong?
Best Answer
Try
current_path.should == "/projects/show"
Capybara also implements a
current_url
method for the fully qualified URL.More info in the docs.
EDIT
Capybara now has a RSpec matcher called have_current_path, which you can use like:
expect(page).to have_current_path(some_other_page_path)
(thanks @bjliu)