mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-22 22:06:50 +00:00
Shim rails5 http test methods
This commit is contained in:
parent
322c8aa59c
commit
ffe658f027
53
test/support/rails5_shims.rb
Normal file
53
test/support/rails5_shims.rb
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
module Rails5Shims
|
||||||
|
module ControllerTests
|
||||||
|
# https://github.com/rails/rails/blob/b217354/actionpack/lib/action_controller/test_case.rb
|
||||||
|
REQUEST_KWARGS = [:params, :headers, :session, :flash, :method, :body, :xhr].freeze
|
||||||
|
|
||||||
|
def get(path, *args)
|
||||||
|
fold_kwargs!(args)
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def post(path, *args)
|
||||||
|
fold_kwargs!(args)
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def patch(path, *args)
|
||||||
|
fold_kwargs!(args)
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
def put(path, *args)
|
||||||
|
fold_kwargs!(args)
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
|
# Fold kwargs from test request into args
|
||||||
|
# Band-aid for DEPRECATION WARNING
|
||||||
|
def fold_kwargs!(args)
|
||||||
|
hash = args && args[0]
|
||||||
|
return unless hash.respond_to?(:key)
|
||||||
|
Rails5Shims::ControllerTests::REQUEST_KWARGS.each do |kwarg|
|
||||||
|
next unless hash.key?(kwarg)
|
||||||
|
value = hash.delete(kwarg)
|
||||||
|
if value.is_a? String
|
||||||
|
args.insert(0, value)
|
||||||
|
else
|
||||||
|
hash.merge! value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Uncomment for debugging where the kwargs warnings come from
|
||||||
|
# def non_kwarg_request_warning
|
||||||
|
# super.tap do
|
||||||
|
# STDOUT.puts caller[2..3]
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if Rails::VERSION::MAJOR < 5
|
||||||
|
ActionController::TestCase.send :include, Rails5Shims::ControllerTests
|
||||||
|
ActionDispatch::IntegrationTest.send :include, Rails5Shims::ControllerTests
|
||||||
|
end
|
||||||
@ -53,3 +53,5 @@ end
|
|||||||
class Object
|
class Object
|
||||||
undef_method :id if respond_to?(:id)
|
undef_method :id if respond_to?(:id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
require "support/rails5_shims"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user