From da86747a3e0ac4cc314867c2d4f234a97b921e1b Mon Sep 17 00:00:00 2001 From: Mateo Murphy Date: Thu, 19 Mar 2015 14:14:27 -0400 Subject: [PATCH] Use symbol for root in jsonapi, fix tests --- lib/active_model/serializer/adapter/json_api.rb | 2 +- test/action_controller/adapter_selector_test.rb | 2 +- test/action_controller/serialization_scope_name_test.rb | 4 ++-- test/action_controller/serialization_test.rb | 6 +++--- test/adapter/json_api/belongs_to_test.rb | 6 +++--- test/adapter/json_api/collection_test.rb | 4 ++-- test/adapter/json_api/has_many_embed_ids_test.rb | 2 +- .../adapter/json_api/has_many_explicit_serializer_test.rb | 8 ++++---- test/adapter/json_api/has_many_test.rb | 4 ++-- test/adapter/json_api/has_one_test.rb | 2 +- test/adapter/json_api/linked_test.rb | 2 +- 11 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/active_model/serializer/adapter/json_api.rb b/lib/active_model/serializer/adapter/json_api.rb index b74daaf8..18905c30 100644 --- a/lib/active_model/serializer/adapter/json_api.rb +++ b/lib/active_model/serializer/adapter/json_api.rb @@ -16,7 +16,7 @@ module ActiveModel end def serializable_hash(options = {}) - @root = 'data' + @root = :data if serializer.respond_to?(:each) @hash[@root] = serializer.map do |s| diff --git a/test/action_controller/adapter_selector_test.rb b/test/action_controller/adapter_selector_test.rb index 96d7dd52..ea266881 100644 --- a/test/action_controller/adapter_selector_test.rb +++ b/test/action_controller/adapter_selector_test.rb @@ -29,7 +29,7 @@ module ActionController def test_render_using_adapter_override get :render_using_adapter_override - assert_equal '{"profiles":{"name":"Name 1","description":"Description 1"}}', response.body + assert_equal '{"data":{"name":"Name 1","description":"Description 1"}}', response.body end def test_render_skipping_adapter diff --git a/test/action_controller/serialization_scope_name_test.rb b/test/action_controller/serialization_scope_name_test.rb index f1e81761..df77231a 100644 --- a/test/action_controller/serialization_scope_name_test.rb +++ b/test/action_controller/serialization_scope_name_test.rb @@ -29,7 +29,7 @@ class DefaultScopeNameTest < ActionController::TestCase def test_default_scope_name get :render_new_user - assert_equal '{"users":{"admin?":false}}', @response.body + assert_equal '{"data":{"admin?":false}}', @response.body end end @@ -62,6 +62,6 @@ class SerializationScopeNameTest < ActionController::TestCase def test_override_scope_name_with_controller get :render_new_user - assert_equal '{"admin_users":{"admin?":true}}', @response.body + assert_equal '{"data":{"admin?":true}}', @response.body end end \ No newline at end of file diff --git a/test/action_controller/serialization_test.rb b/test/action_controller/serialization_test.rb index a10cb039..28325ede 100644 --- a/test/action_controller/serialization_test.rb +++ b/test/action_controller/serialization_test.rb @@ -111,14 +111,14 @@ module ActionController get :render_using_default_adapter_root assert_equal 'application/json', @response.content_type - assert_equal '{"profiles":{"name":"Name 1","description":"Description 1"}}', @response.body + assert_equal '{"data":{"name":"Name 1","description":"Description 1"}}', @response.body end def test_render_using_custom_root_in_adapter_with_a_default get :render_using_custom_root_in_adapter_with_a_default assert_equal 'application/json', @response.content_type - assert_equal '{"profile":{"name":"Name 1","description":"Description 1"}}', @response.body + assert_equal '{"data":{"name":"Name 1","description":"Description 1"}}', @response.body end def test_render_array_using_implicit_serializer @@ -143,7 +143,7 @@ module ActionController get :render_array_using_implicit_serializer_and_meta assert_equal 'application/json', @response.content_type - assert_equal '{"profiles":[{"name":"Name 1","description":"Description 1"}],"meta":{"total":10}}', @response.body + assert_equal '{"data":[{"name":"Name 1","description":"Description 1"}],"meta":{"total":10}}', @response.body end def test_render_with_cache_enable diff --git a/test/adapter/json_api/belongs_to_test.rb b/test/adapter/json_api/belongs_to_test.rb index 206c4167..e5073d65 100644 --- a/test/adapter/json_api/belongs_to_test.rb +++ b/test/adapter/json_api/belongs_to_test.rb @@ -32,7 +32,7 @@ module ActiveModel end def test_includes_post_id - assert_equal("42", @adapter.serializable_hash[:comments][:links][:post]) + assert_equal("42", @adapter.serializable_hash[:data][:links][:post]) end def test_includes_linked_post @@ -67,13 +67,13 @@ module ActiveModel serializer = PostSerializer.new(@anonymous_post) adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer) - assert_equal({comments: [], blog: "999", author: nil}, adapter.serializable_hash[:posts][:links]) + assert_equal({comments: [], blog: "999", author: nil}, adapter.serializable_hash[:data][:links]) end def test_include_type_for_association_when_different_than_name serializer = BlogSerializer.new(@blog) adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer) - links = adapter.serializable_hash[:blogs][:links] + links = adapter.serializable_hash[:data][:links] expected = { writer: { type: "author", diff --git a/test/adapter/json_api/collection_test.rb b/test/adapter/json_api/collection_test.rb index 3f207065..48b3952d 100644 --- a/test/adapter/json_api/collection_test.rb +++ b/test/adapter/json_api/collection_test.rb @@ -28,7 +28,7 @@ module ActiveModel assert_equal([ { title: "Hello!!", body: "Hello, world!!", id: "1", links: { comments: [], blog: "999", author: "1" } }, { title: "New Post", body: "Body", id: "2", links: { comments: [], blog: "999", author: "1" } } - ], @adapter.serializable_hash[:posts]) + ], @adapter.serializable_hash[:data]) end def test_limiting_fields @@ -36,7 +36,7 @@ module ActiveModel assert_equal([ { title: "Hello!!", links: { comments: [], blog: "999", author: "1" } }, { title: "New Post", links: { comments: [], blog: "999", author: "1" } } - ], @adapter.serializable_hash[:posts]) + ], @adapter.serializable_hash[:data]) end end diff --git a/test/adapter/json_api/has_many_embed_ids_test.rb b/test/adapter/json_api/has_many_embed_ids_test.rb index 0082e585..1f68006d 100644 --- a/test/adapter/json_api/has_many_embed_ids_test.rb +++ b/test/adapter/json_api/has_many_embed_ids_test.rb @@ -25,7 +25,7 @@ module ActiveModel end def test_includes_comment_ids - assert_equal(["1", "2"], @adapter.serializable_hash[:authors][:links][:posts]) + assert_equal(["1", "2"], @adapter.serializable_hash[:data][:links][:posts]) end def test_no_includes_linked_comments diff --git a/test/adapter/json_api/has_many_explicit_serializer_test.rb b/test/adapter/json_api/has_many_explicit_serializer_test.rb index 0f99f0ec..e1df69f0 100644 --- a/test/adapter/json_api/has_many_explicit_serializer_test.rb +++ b/test/adapter/json_api/has_many_explicit_serializer_test.rb @@ -30,7 +30,7 @@ module ActiveModel def test_includes_comment_ids assert_equal(['1', '2'], - @adapter.serializable_hash[:posts][:links][:comments]) + @adapter.serializable_hash[:data][:links][:comments]) end def test_includes_linked_comments @@ -42,7 +42,7 @@ module ActiveModel def test_includes_author_id assert_equal(@author.id.to_s, - @adapter.serializable_hash[:posts][:links][:author]) + @adapter.serializable_hash[:data][:links][:author]) end def test_includes_linked_authors @@ -53,13 +53,13 @@ module ActiveModel def test_explicit_serializer_with_null_resource @post.author = nil assert_equal(nil, - @adapter.serializable_hash[:posts][:links][:author]) + @adapter.serializable_hash[:data][:links][:author]) end def test_explicit_serializer_with_null_collection @post.comments = [] assert_equal([], - @adapter.serializable_hash[:posts][:links][:comments]) + @adapter.serializable_hash[:data][:links][:comments]) end end end diff --git a/test/adapter/json_api/has_many_test.rb b/test/adapter/json_api/has_many_test.rb index 87ef36f3..a4ec8efd 100644 --- a/test/adapter/json_api/has_many_test.rb +++ b/test/adapter/json_api/has_many_test.rb @@ -33,7 +33,7 @@ module ActiveModel end def test_includes_comment_ids - assert_equal(["1", "2"], @adapter.serializable_hash[:posts][:links][:comments]) + assert_equal(["1", "2"], @adapter.serializable_hash[:data][:links][:comments]) end def test_includes_linked_comments @@ -84,7 +84,7 @@ module ActiveModel def test_include_type_for_association_when_different_than_name serializer = BlogSerializer.new(@blog) adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer) - actual = adapter.serializable_hash[:blogs][:links][:articles] + actual = adapter.serializable_hash[:data][:links][:articles] expected = { type: "posts", ids: ["1"] diff --git a/test/adapter/json_api/has_one_test.rb b/test/adapter/json_api/has_one_test.rb index 247bb2f9..42a76156 100644 --- a/test/adapter/json_api/has_one_test.rb +++ b/test/adapter/json_api/has_one_test.rb @@ -30,7 +30,7 @@ module ActiveModel end def test_includes_bio_id - assert_equal("43", @adapter.serializable_hash[:authors][:links][:bio]) + assert_equal("43", @adapter.serializable_hash[:data][:links][:bio]) end def test_includes_linked_bio diff --git a/test/adapter/json_api/linked_test.rb b/test/adapter/json_api/linked_test.rb index 72897239..dd28e74d 100644 --- a/test/adapter/json_api/linked_test.rb +++ b/test/adapter/json_api/linked_test.rb @@ -185,7 +185,7 @@ module ActiveModel spammy_post.related = [Spam::UnrelatedLink.new(id: 456)] serializer = SpammyPostSerializer.new(spammy_post) adapter = ActiveModel::Serializer::Adapter::JsonApi.new(serializer) - links = adapter.serializable_hash[:posts][:links] + links = adapter.serializable_hash[:data][:links] expected = { related: { type: 'unrelated_links',