diff options
author | Matt Jankowski <mjankowski@thoughtbot.com> | 2017-04-09 08:39:41 -0400 |
---|---|---|
committer | Eugen <eugen@zeonfederated.com> | 2017-04-09 14:39:41 +0200 |
commit | 71706f21c28f5ae623ee69810fe26a34fb79b446 (patch) | |
tree | 029ac8a62f15cbd28daa38e5711b46da094306e2 | |
parent | b1881a3d481bccfba984d42380ab2f3780bd0845 (diff) |
Ignore implied formats for catch all route requests (#1340)
A request to `/test` would show the custom 404 page, but a request to `/test.test` would return a 404 with an empty body. This change ignores the format on incoming catch all route requests, so that the html 404 page is returned on these requests.
-rw-r--r-- | config/routes.rb | 5 | ||||
-rw-r--r-- | spec/requests/catch_all_route_request_spec.rb | 21 |
2 files changed, 25 insertions, 1 deletions
diff --git a/config/routes.rb b/config/routes.rb index 9cbecf077..66b0ed830 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -194,5 +194,8 @@ Rails.application.routes.draw do root 'home#index' - match '*unmatched_route', via: :all, to: 'application#raise_not_found' + match '*unmatched_route', + via: :all, + to: 'application#raise_not_found', + format: false end diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb new file mode 100644 index 000000000..22ce1cf59 --- /dev/null +++ b/spec/requests/catch_all_route_request_spec.rb @@ -0,0 +1,21 @@ +require "rails_helper" + +describe "The catch all route" do + describe "with a simple value" do + it "returns a 404 page as html" do + get "/test" + + expect(response.status).to eq 404 + expect(response.content_type).to eq "text/html" + end + end + + describe "with an implied format" do + it "returns a 404 page as html" do + get "/test.test" + + expect(response.status).to eq 404 + expect(response.content_type).to eq "text/html" + end + end +end |