mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-24 23:06:50 +00:00
Test keyword args in requests for Rails 5; fallback for earlier versions
kwargs: params,session,flash,method,body Fix Rails 5 DEPRECATION WARNING
This commit is contained in:
parent
3b87cb3593
commit
c56d49f26b
@ -53,7 +53,7 @@ module ActionController
|
|||||||
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
|
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
|
||||||
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1" }
|
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1" }
|
||||||
|
|
||||||
get :render_pagination_using_will_paginate, page: { number: 2, size: 1 }
|
get :render_pagination_using_will_paginate, params: { page: { number: 2, size: 1 } }
|
||||||
response = JSON.parse(@response.body)
|
response = JSON.parse(@response.body)
|
||||||
assert_equal expected_links, response['links']
|
assert_equal expected_links, response['links']
|
||||||
end
|
end
|
||||||
@ -62,7 +62,7 @@ module ActionController
|
|||||||
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
|
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
|
||||||
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2",
|
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2",
|
||||||
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2" }
|
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2" }
|
||||||
get :render_pagination_using_will_paginate, page: { number: 1, size: 2 }
|
get :render_pagination_using_will_paginate, params: { page: { number: 1, size: 2 } }
|
||||||
response = JSON.parse(@response.body)
|
response = JSON.parse(@response.body)
|
||||||
assert_equal expected_links, response['links']
|
assert_equal expected_links, response['links']
|
||||||
end
|
end
|
||||||
@ -73,7 +73,7 @@ module ActionController
|
|||||||
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1",
|
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1",
|
||||||
'next' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
|
'next' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
|
||||||
'last' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1" }
|
'last' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1" }
|
||||||
get :render_pagination_using_kaminari, page: { number: 2, size: 1 }
|
get :render_pagination_using_kaminari, params: { page: { number: 2, size: 1 } }
|
||||||
response = JSON.parse(@response.body)
|
response = JSON.parse(@response.body)
|
||||||
assert_equal expected_links, response['links']
|
assert_equal expected_links, response['links']
|
||||||
end
|
end
|
||||||
@ -82,7 +82,7 @@ module ActionController
|
|||||||
expected_links = { 'self' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
|
expected_links = { 'self' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1",
|
||||||
'first' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1",
|
'first' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1",
|
||||||
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=1" }
|
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=1" }
|
||||||
get :render_pagination_using_kaminari, page: { number: 3, size: 1 }
|
get :render_pagination_using_kaminari, params: { page: { number: 3, size: 1 } }
|
||||||
response = JSON.parse(@response.body)
|
response = JSON.parse(@response.body)
|
||||||
assert_equal expected_links, response['links']
|
assert_equal expected_links, response['links']
|
||||||
end
|
end
|
||||||
@ -91,7 +91,7 @@ module ActionController
|
|||||||
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2&teste=additional",
|
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2&teste=additional",
|
||||||
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2&teste=additional",
|
'next' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2&teste=additional",
|
||||||
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2&teste=additional" }
|
'last' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2&teste=additional" }
|
||||||
get :render_pagination_using_will_paginate, page: { number: 1, size: 2 }, teste: 'additional'
|
get :render_pagination_using_will_paginate, params: { page: { number: 1, size: 2 }, teste: 'additional' }
|
||||||
response = JSON.parse(@response.body)
|
response = JSON.parse(@response.body)
|
||||||
assert_equal expected_links, response['links']
|
assert_equal expected_links, response['links']
|
||||||
end
|
end
|
||||||
@ -100,13 +100,13 @@ module ActionController
|
|||||||
expected_links = { 'self' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1&teste=additional",
|
expected_links = { 'self' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1&teste=additional",
|
||||||
'first' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1&teste=additional",
|
'first' => "#{KAMINARI_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=1&teste=additional",
|
||||||
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=1&teste=additional" }
|
'prev' => "#{KAMINARI_URI}?page%5Bnumber%5D=2&page%5Bsize%5D=1&teste=additional" }
|
||||||
get :render_pagination_using_kaminari, page: { number: 3, size: 1 }, teste: 'additional'
|
get :render_pagination_using_kaminari, params: { page: { number: 3, size: 1 }, teste: 'additional' }
|
||||||
response = JSON.parse(@response.body)
|
response = JSON.parse(@response.body)
|
||||||
assert_equal expected_links, response['links']
|
assert_equal expected_links, response['links']
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_array_without_pagination_links
|
def test_array_without_pagination_links
|
||||||
get :render_array_without_pagination_links, page: { number: 2, size: 1 }
|
get :render_array_without_pagination_links, params: { page: { number: 2, size: 1 } }
|
||||||
response = JSON.parse(@response.body)
|
response = JSON.parse(@response.body)
|
||||||
refute response.key? 'links'
|
refute response.key? 'links'
|
||||||
end
|
end
|
||||||
|
|||||||
29
test/support/rails5_shims.rb
Normal file
29
test/support/rails5_shims.rb
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
module Rails5Shims
|
||||||
|
module ControllerTests
|
||||||
|
# https://github.com/rails/rails/blob/b217354/actionpack/lib/action_controller/test_case.rb
|
||||||
|
REQUEST_KWARGS = [:params, :session, :flash, :method, :body, :xhr]
|
||||||
|
|
||||||
|
# Fold kwargs from test request into args
|
||||||
|
# Band-aid for DEPRECATION WARNING
|
||||||
|
def get(path, *args)
|
||||||
|
hash = args && args[0]
|
||||||
|
if hash.respond_to?(:key)
|
||||||
|
Rails5Shims::ControllerTests::REQUEST_KWARGS.each do |kwarg|
|
||||||
|
next unless hash.key?(kwarg)
|
||||||
|
hash.merge! hash.delete(kwarg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
super
|
||||||
|
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
|
||||||
|
end
|
||||||
@ -10,4 +10,10 @@ ActionController::TestCase.class_eval do
|
|||||||
@controller.view_assigns.each { |k, v| assigns.regular_writer(k, v) }
|
@controller.view_assigns.each { |k, v| assigns.regular_writer(k, v) }
|
||||||
key.nil? ? assigns : assigns[key]
|
key.nil? ? assigns : assigns[key]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Rails5: Uncomment for debugging where the warnings come from
|
||||||
|
# def non_kwarg_request_warning
|
||||||
|
# super
|
||||||
|
# STDOUT.puts caller[2..3]
|
||||||
|
# end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -64,6 +64,8 @@ require 'support/test_case'
|
|||||||
|
|
||||||
require 'support/serialization_testing'
|
require 'support/serialization_testing'
|
||||||
|
|
||||||
|
require 'support/rails5_shims'
|
||||||
|
|
||||||
require 'fixtures/active_record'
|
require 'fixtures/active_record'
|
||||||
|
|
||||||
require 'fixtures/poro'
|
require 'fixtures/poro'
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user