test pagination links the way the controller does

This commit is contained in:
Bruno Bacarini 2015-08-20 11:32:03 -03:00
parent b73ffe25c8
commit d50262edbe

View File

@ -28,6 +28,11 @@ module ActiveModel
@options[:context] = context @options[:context] = context
end end
def load_adapter(paginated_collection, options = {})
options = options.merge(adapter: :json_api)
ActiveModel::SerializableResource.new(paginated_collection, options)
end
def using_kaminari def using_kaminari
Kaminari.paginate_array(@array).page(2).per(1) Kaminari.paginate_array(@array).page(2).per(1)
end end
@ -77,24 +82,21 @@ module ActiveModel
end end
def test_pagination_links_using_kaminari def test_pagination_links_using_kaminari
serializer = ArraySerializer.new(using_kaminari) adapter = load_adapter(using_kaminari)
adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer)
mock_request mock_request
assert_equal expected_response_with_pagination_links, adapter.serializable_hash(@options) assert_equal expected_response_with_pagination_links, adapter.serializable_hash(@options)
end end
def test_pagination_links_using_will_paginate def test_pagination_links_using_will_paginate
serializer = ArraySerializer.new(using_will_paginate) adapter = load_adapter(using_will_paginate)
adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer)
mock_request mock_request
assert_equal expected_response_with_pagination_links, adapter.serializable_hash(@options) assert_equal expected_response_with_pagination_links, adapter.serializable_hash(@options)
end end
def test_pagination_links_with_additional_params def test_pagination_links_with_additional_params
serializer = ArraySerializer.new(using_will_paginate) adapter = load_adapter(using_will_paginate)
adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer)
mock_request({ test: 'test' }) mock_request({ test: 'test' })
assert_equal expected_response_with_pagination_links_and_additional_params, assert_equal expected_response_with_pagination_links_and_additional_params,
@ -102,8 +104,7 @@ module ActiveModel
end end
def test_not_showing_pagination_links def test_not_showing_pagination_links
serializer = ArraySerializer.new(@array) adapter = load_adapter(@array)
adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer)
assert_equal expected_response_without_pagination_links, adapter.serializable_hash assert_equal expected_response_without_pagination_links, adapter.serializable_hash
end end