mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-25 07:16:49 +00:00
Merge pull request #1353 from bf4/disable_serializer_lookup
Allow users to globally opt out of automatic serializer lookup
This commit is contained in:
@@ -57,7 +57,7 @@ module ActiveModel
|
||||
|
||||
def test_serializer_for_non_ams_serializer
|
||||
serializer = ActiveModel::Serializer.serializer_for(@tweet)
|
||||
assert_nil(serializer)
|
||||
assert_equal nil, serializer
|
||||
end
|
||||
|
||||
def test_serializer_for_existing_serializer
|
||||
@@ -65,6 +65,13 @@ module ActiveModel
|
||||
assert_equal ProfileSerializer, serializer
|
||||
end
|
||||
|
||||
def test_serializer_for_existing_serializer_with_lookup_disabled
|
||||
serializer = with_serializer_lookup_disabled do
|
||||
ActiveModel::Serializer.serializer_for(@profile)
|
||||
end
|
||||
assert_equal nil, serializer
|
||||
end
|
||||
|
||||
def test_serializer_for_not_existing_serializer
|
||||
serializer = ActiveModel::Serializer.serializer_for(@model)
|
||||
assert_equal nil, serializer
|
||||
@@ -75,21 +82,51 @@ module ActiveModel
|
||||
assert_equal ProfileSerializer, serializer
|
||||
end
|
||||
|
||||
def test_serializer_inherited_serializer_with_lookup_disabled
|
||||
serializer = with_serializer_lookup_disabled do
|
||||
ActiveModel::Serializer.serializer_for(@my_profile)
|
||||
end
|
||||
assert_equal nil, serializer
|
||||
end
|
||||
|
||||
def test_serializer_custom_serializer
|
||||
serializer = ActiveModel::Serializer.serializer_for(@custom_profile)
|
||||
assert_equal ProfileSerializer, serializer
|
||||
end
|
||||
|
||||
def test_serializer_custom_serializer_with_lookup_disabled
|
||||
serializer = with_serializer_lookup_disabled do
|
||||
ActiveModel::Serializer.serializer_for(@custom_profile)
|
||||
end
|
||||
assert_equal ProfileSerializer, serializer
|
||||
end
|
||||
|
||||
def test_serializer_for_namespaced_resource
|
||||
post = ResourceNamespace::Post.new
|
||||
serializer = ActiveModel::Serializer.serializer_for(post)
|
||||
assert_equal(ResourceNamespace::PostSerializer, serializer)
|
||||
assert_equal ResourceNamespace::PostSerializer, serializer
|
||||
end
|
||||
|
||||
def test_serializer_for_namespaced_resource_with_lookup_disabled
|
||||
post = ResourceNamespace::Post.new
|
||||
serializer = with_serializer_lookup_disabled do
|
||||
ActiveModel::Serializer.serializer_for(post)
|
||||
end
|
||||
assert_equal nil, serializer
|
||||
end
|
||||
|
||||
def test_serializer_for_nested_resource
|
||||
comment = ResourceNamespace::Comment.new
|
||||
serializer = ResourceNamespace::PostSerializer.serializer_for(comment)
|
||||
assert_equal(ResourceNamespace::PostSerializer::CommentSerializer, serializer)
|
||||
assert_equal ResourceNamespace::PostSerializer::CommentSerializer, serializer
|
||||
end
|
||||
|
||||
def test_serializer_for_nested_resource_with_lookup_disabled
|
||||
comment = ResourceNamespace::Comment.new
|
||||
serializer = with_serializer_lookup_disabled do
|
||||
ResourceNamespace::PostSerializer.serializer_for(comment)
|
||||
end
|
||||
assert_equal nil, serializer
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -31,6 +31,14 @@ module SerializationTesting
|
||||
ActiveModel::Serializer.config.replace(old_config)
|
||||
end
|
||||
|
||||
def with_serializer_lookup_disabled
|
||||
original_serializer_lookup = ActiveModelSerializers.config.serializer_lookup_enabled
|
||||
ActiveModelSerializers.config.serializer_lookup_enabled = false
|
||||
yield
|
||||
ensure
|
||||
ActiveModelSerializers.config.serializer_lookup_enabled = original_serializer_lookup
|
||||
end
|
||||
|
||||
def serializable(resource, options = {})
|
||||
ActiveModel::SerializableResource.new(resource, options)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user