mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
fix with_routing when testing api only controllers
This commit is contained in:
parent
8c54783844
commit
f28d073a39
3 changed files with 33 additions and 2 deletions
|
@ -1,3 +1,7 @@
|
|||
* Make `with_routing` test helper work when testing controllers inheriting from `ActionController::API`
|
||||
|
||||
*Julia López*
|
||||
|
||||
* Use accept header in integration tests with `as: :json`
|
||||
|
||||
Instead of appending the `format` to the request path, Rails will figure
|
||||
|
|
|
@ -152,8 +152,11 @@ module ActionDispatch
|
|||
_routes = @routes
|
||||
|
||||
@controller.singleton_class.include(_routes.url_helpers)
|
||||
@controller.view_context_class = Class.new(@controller.view_context_class) do
|
||||
include _routes.url_helpers
|
||||
|
||||
if @controller.respond_to? :view_context_class
|
||||
@controller.view_context_class = Class.new(@controller.view_context_class) do
|
||||
include _routes.url_helpers
|
||||
end
|
||||
end
|
||||
end
|
||||
yield @routes
|
||||
|
|
|
@ -128,6 +128,16 @@ module Admin
|
|||
end
|
||||
end
|
||||
|
||||
class ApiOnlyController < ActionController::API
|
||||
def nothing
|
||||
head :ok
|
||||
end
|
||||
|
||||
def redirect_to_new_route
|
||||
redirect_to new_route_url
|
||||
end
|
||||
end
|
||||
|
||||
class ActionPackAssertionsControllerTest < ActionController::TestCase
|
||||
def test_render_file_absolute_path
|
||||
get :render_file_absolute_path
|
||||
|
@ -170,6 +180,20 @@ class ActionPackAssertionsControllerTest < ActionController::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_with_routing_works_with_api_only_controllers
|
||||
@controller = ApiOnlyController.new
|
||||
|
||||
with_routing do |set|
|
||||
set.draw do
|
||||
get "new_route", to: "api_only#nothing"
|
||||
get "redirect_to_new_route", to: "api_only#redirect_to_new_route"
|
||||
end
|
||||
|
||||
process :redirect_to_new_route
|
||||
assert_redirected_to "http://test.host/new_route"
|
||||
end
|
||||
end
|
||||
|
||||
def test_assert_redirect_to_named_route_failure
|
||||
with_routing do |set|
|
||||
set.draw do
|
||||
|
|
Loading…
Reference in a new issue