Hey guys,
I have a weird situation where I have a route that specifically
redirects (in the routes file itself, not a corresponding controller
action), but when using RSpec to test it, for some reason it’s giving
me a 200 OK with an empty response body.
So, for example, take this route:
get “/search/users/:name(/:location)” => “search#users”
get “/search/users” => redirect(root_path)
The idea being that if you try to access /search/users, you’ll just be
redirected to the index, because you didn’t bother specifying criteria
for a search (such as a name or location parameter).
My corresponding spec looks like this:
context “a GET to /users (with no params)” do
it “should redirect to index” do
get :users
response.should redirect_to(root_path)
end
end
The response.should line fails because the response object isn’t a
redirect, it’s a 200 OK with a blank response body. However, if I try
it in my browser (under development mode) it seems to redirect exactly
as expected. This just presents a problem because I’m not sure how to
properly write a test for it.
Does anyone have any pointers on what I’m doing wrong here? Thanks
for any help you can provide