How to get current path with query string using Capybara
I replaced the _path method with _url to achieve comparing the full urls with parameters.
current_url.should == people_url(:search => 'name')
I've updated this answer to reflect modern conventions in capybara. I think this is ideal since this is the accepted answer, and what many people are being referred to when looking for a solution. With that said, the correct way to check the current path is to use the has_current_path?
matcher provided by Capybara, as documented here: Click Here
Example usage:
expect(page).to have_current_path(people_path(search: 'name'))
As you can see in the documentation, other options are available. If the current page is /people?search=name
but you only care that it's on the /people
page regardless of the param, you can send the only_path
option:
expect(page).to have_current_path(people_path, only_path: true)
Additionally, if you want to compare the entire URL:
expect(page).to have_current_path(people_url, url: true)
Credit to Tom Walpole for pointing out this method.