mirror of
https://github.com/ditkrg/active_model_serializers.git
synced 2026-01-24 14:56:50 +00:00
tests for namespaced controlleler
This commit is contained in:
parent
26c0847563
commit
dde1492934
@ -39,7 +39,7 @@ module ActiveModel
|
|||||||
|
|
||||||
def serializable_object
|
def serializable_object
|
||||||
@object.map do |item|
|
@object.map do |item|
|
||||||
serializer_for(item).serializable_object
|
serializer_for(item).serializable_object_with_notification
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
alias_method :serializable_array, :serializable_object
|
alias_method :serializable_array, :serializable_object
|
||||||
|
|||||||
@ -12,6 +12,12 @@ module ActiveModel
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def serializable_object_with_notification
|
||||||
|
instrument('!serialize') do
|
||||||
|
serializable_object
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def serializable_data
|
def serializable_data
|
||||||
embedded_in_root_associations.tap do |hash|
|
embedded_in_root_associations.tap do |hash|
|
||||||
if respond_to?(:meta) && meta
|
if respond_to?(:meta) && meta
|
||||||
|
|||||||
9
test/fixtures/poro.rb
vendored
9
test/fixtures/poro.rb
vendored
@ -73,3 +73,12 @@ end
|
|||||||
class WebLogLowerCamelSerializer < WebLogSerializer
|
class WebLogLowerCamelSerializer < WebLogSerializer
|
||||||
format_keys :lower_camel
|
format_keys :lower_camel
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class ShortUserSerializer < ActiveModel::Serializer
|
||||||
|
attributes :name
|
||||||
|
end
|
||||||
|
|
||||||
|
module TestNamespace
|
||||||
|
class ProfileSerializer < ::ProfileSerializer; end
|
||||||
|
class UserSerializer < ::UserSerializer; end
|
||||||
|
end
|
||||||
|
|||||||
@ -0,0 +1,47 @@
|
|||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
module ActionController
|
||||||
|
module Serialization
|
||||||
|
class NamespacedSerializationTest < ActionController::TestCase
|
||||||
|
class TestNamespace::MyController < ActionController::Base
|
||||||
|
def render_profile_with_namespace
|
||||||
|
render json: Profile.new({ name: 'Name 1', description: 'Description 1'})
|
||||||
|
end
|
||||||
|
|
||||||
|
def render_profiles_with_namespace
|
||||||
|
render json: [Profile.new({ name: 'Name 1', description: 'Description 1'})]
|
||||||
|
end
|
||||||
|
|
||||||
|
def render_comment
|
||||||
|
render json: Comment.new(content: 'Comment 1')
|
||||||
|
end
|
||||||
|
|
||||||
|
def render_comments
|
||||||
|
render json: [Comment.new(content: 'Comment 1')]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
tests TestNamespace::MyController
|
||||||
|
|
||||||
|
def test_render_profile_with_namespace
|
||||||
|
get :render_profile_with_namespace
|
||||||
|
assert_serializer TestNamespace::ProfileSerializer
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_render_profiles_with_namespace
|
||||||
|
get :render_profiles_with_namespace
|
||||||
|
assert_serializer TestNamespace::ProfileSerializer
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_fallback_to_a_version_without_namespace
|
||||||
|
get :render_comment
|
||||||
|
assert_serializer CommentSerializer
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_array_fallback_to_a_version_without_namespace
|
||||||
|
get :render_comments
|
||||||
|
assert_serializer CommentSerializer
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in New Issue
Block a user