mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 07:16:49 +00:00
Merge pull request #2149 from mecampbellsoup/more-pagination-links-by-default
Always include self, first, last pagination links
This commit is contained in:
@@ -58,8 +58,10 @@ module ActionController
|
||||
assert_equal expected_links, response['links']
|
||||
end
|
||||
|
||||
def test_render_only_last_and_next_pagination_links
|
||||
def test_render_only_first_last_and_next_pagination_links
|
||||
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
|
||||
'first' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
|
||||
'prev' => nil,
|
||||
'next' => "#{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, params: { page: { number: 1, size: 2 } }
|
||||
@@ -78,17 +80,21 @@ module ActionController
|
||||
assert_equal expected_links, response['links']
|
||||
end
|
||||
|
||||
def test_render_only_prev_and_first_pagination_links
|
||||
def test_render_only_prev_first_and_last_pagination_links
|
||||
expected_links = { 'self' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&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",
|
||||
'next' => nil,
|
||||
'last' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1" }
|
||||
get :render_pagination_using_kaminari, params: { page: { number: 3, size: 1 } }
|
||||
response = JSON.parse(@response.body)
|
||||
assert_equal expected_links, response['links']
|
||||
end
|
||||
|
||||
def test_render_only_last_and_next_pagination_links_with_additional_params
|
||||
def test_render_only_first_last_and_next_pagination_links_with_additional_params
|
||||
expected_links = { 'self' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2&teste=additional",
|
||||
'first' => "#{WILL_PAGINATE_URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2&teste=additional",
|
||||
'prev' => nil,
|
||||
'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" }
|
||||
get :render_pagination_using_will_paginate, params: { page: { number: 1, size: 2 }, teste: 'additional' }
|
||||
@@ -96,10 +102,12 @@ module ActionController
|
||||
assert_equal expected_links, response['links']
|
||||
end
|
||||
|
||||
def test_render_only_prev_and_first_pagination_links_with_additional_params
|
||||
def test_render_only_prev_first_and_last_pagination_links_with_additional_params
|
||||
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",
|
||||
'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",
|
||||
'next' => nil,
|
||||
'last' => "#{KAMINARI_URI}?page%5Bnumber%5D=3&page%5Bsize%5D=1&teste=additional" }
|
||||
get :render_pagination_using_kaminari, params: { page: { number: 3, size: 1 }, teste: 'additional' }
|
||||
response = JSON.parse(@response.body)
|
||||
assert_equal expected_links, response['links']
|
||||
|
||||
@@ -54,6 +54,16 @@ module ActiveModelSerializers
|
||||
}
|
||||
end
|
||||
|
||||
def empty_collection_links
|
||||
{
|
||||
self: "#{URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
|
||||
first: "#{URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
|
||||
prev: nil,
|
||||
next: nil,
|
||||
last: "#{URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2"
|
||||
}
|
||||
end
|
||||
|
||||
def links
|
||||
{
|
||||
links: {
|
||||
@@ -71,7 +81,9 @@ module ActiveModelSerializers
|
||||
links: {
|
||||
self: "#{URI}?page%5Bnumber%5D=3&page%5Bsize%5D=2",
|
||||
first: "#{URI}?page%5Bnumber%5D=1&page%5Bsize%5D=2",
|
||||
prev: "#{URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2"
|
||||
prev: "#{URI}?page%5Bnumber%5D=2&page%5Bsize%5D=2",
|
||||
next: nil,
|
||||
last: "#{URI}?page%5Bnumber%5D=3&page%5Bsize%5D=2"
|
||||
}
|
||||
}
|
||||
end
|
||||
@@ -108,10 +120,10 @@ module ActiveModelSerializers
|
||||
end
|
||||
end
|
||||
|
||||
def expected_response_with_no_data_pagination_links
|
||||
def expected_response_with_empty_collection_pagination_links
|
||||
{}.tap do |hash|
|
||||
hash[:data] = []
|
||||
hash[:links] = {}
|
||||
hash.merge! links: empty_collection_links
|
||||
end
|
||||
end
|
||||
|
||||
@@ -139,7 +151,7 @@ module ActiveModelSerializers
|
||||
|
||||
adapter = load_adapter(using_kaminari(1), mock_request)
|
||||
|
||||
assert_equal expected_response_with_no_data_pagination_links, adapter.serializable_hash
|
||||
assert_equal expected_response_with_empty_collection_pagination_links, adapter.serializable_hash
|
||||
end
|
||||
|
||||
def test_pagination_links_when_zero_results_will_paginate
|
||||
@@ -147,7 +159,7 @@ module ActiveModelSerializers
|
||||
|
||||
adapter = load_adapter(using_will_paginate(1), mock_request)
|
||||
|
||||
assert_equal expected_response_with_no_data_pagination_links, adapter.serializable_hash
|
||||
assert_equal expected_response_with_empty_collection_pagination_links, adapter.serializable_hash
|
||||
end
|
||||
|
||||
def test_last_page_pagination_links_using_kaminari
|
||||
|
||||
Reference in New Issue
Block a user