From b9a86a002acabfde9fcea76c5586924e2f5fc3c4 Mon Sep 17 00:00:00 2001 From: iwsksky Date: Fri, 21 Dec 2018 03:44:42 +0900 Subject: [PATCH] pass array of unique movies to serializer --- README.md | 4 ++-- .../as_notifications_negative_spec.rb | 3 ++- .../instrumentation/as_notifications_spec.rb | 3 ++- spec/lib/object_serializer_caching_spec.rb | 3 ++- .../lib/object_serializer_class_methods_spec.rb | 6 +++--- spec/lib/object_serializer_spec.rb | 17 +++++++++++------ 6 files changed, 22 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 5c5c77b..ec817c4 100644 --- a/README.md +++ b/README.md @@ -308,7 +308,7 @@ options[:links] = { prev: '...' } options[:include] = [:actors, :'actors.agency', :'actors.agency.state'] -MovieSerializer.new([movie, movie], options).serialized_json +MovieSerializer.new(movies, options).serialized_json ``` ### Collection Serialization @@ -320,7 +320,7 @@ options[:links] = { next: '...', prev: '...' } -hash = MovieSerializer.new([movie, movie], options).serializable_hash +hash = MovieSerializer.new(movies, options).serializable_hash json_string = MovieSerializer.new([movie, movie], options).serialized_json ``` diff --git a/spec/lib/instrumentation/as_notifications_negative_spec.rb b/spec/lib/instrumentation/as_notifications_negative_spec.rb index 6912ed4..de144de 100644 --- a/spec/lib/instrumentation/as_notifications_negative_spec.rb +++ b/spec/lib/instrumentation/as_notifications_negative_spec.rb @@ -10,7 +10,8 @@ describe FastJsonapi::ObjectSerializer do options[:meta] = { total: 2 } options[:include] = [:actors] - @serializer = MovieSerializer.new([movie, movie], options) + movies = build_movies(2) + @serializer = MovieSerializer.new(movies, options) end context 'serializable_hash' do diff --git a/spec/lib/instrumentation/as_notifications_spec.rb b/spec/lib/instrumentation/as_notifications_spec.rb index f7769ff..e4993bb 100644 --- a/spec/lib/instrumentation/as_notifications_spec.rb +++ b/spec/lib/instrumentation/as_notifications_spec.rb @@ -24,7 +24,8 @@ describe FastJsonapi::ObjectSerializer do options[:meta] = { total: 2 } options[:include] = [:actors] - @serializer = MovieSerializer.new([movie, movie], options) + movies = build_movies(2) + @serializer = MovieSerializer.new(movies, options) end context 'serializable_hash' do diff --git a/spec/lib/object_serializer_caching_spec.rb b/spec/lib/object_serializer_caching_spec.rb index 8e455d4..2f58cd1 100644 --- a/spec/lib/object_serializer_caching_spec.rb +++ b/spec/lib/object_serializer_caching_spec.rb @@ -16,7 +16,8 @@ describe FastJsonapi::ObjectSerializer do options[:links] = { self: 'self' } options[:include] = [:actors] - serializable_hash = CachingMovieSerializer.new([movie, movie], options).serializable_hash + movies = build_movies(2) + serializable_hash = CachingMovieSerializer.new(movies, options).serializable_hash expect(serializable_hash[:data].length).to eq 2 expect(serializable_hash[:data][0][:relationships].length).to eq 3 diff --git a/spec/lib/object_serializer_class_methods_spec.rb b/spec/lib/object_serializer_class_methods_spec.rb index 205f645..6fe4718 100644 --- a/spec/lib/object_serializer_class_methods_spec.rb +++ b/spec/lib/object_serializer_class_methods_spec.rb @@ -213,7 +213,7 @@ describe FastJsonapi::ObjectSerializer do end context 'when an array of records is given' do - let(:resource) { [movie, movie] } + let(:resource) { build_movies(2) } it 'returns correct hash which id equals owner_id' do expect(serializable_hash[:data][0][:id].to_i).to eq movie.owner_id @@ -240,7 +240,7 @@ describe FastJsonapi::ObjectSerializer do end context 'when an array of records is given' do - let(:resource) { [movie, movie] } + let(:resource) { build_movies(2) } it 'returns correct hash which id equals movie-id' do expect(serializable_hash[:data][0][:id]).to eq "movie-#{movie.owner_id}" @@ -403,7 +403,7 @@ describe FastJsonapi::ObjectSerializer do end describe '#key_transform' do - subject(:hash) { movie_serializer_class.new([movie, movie], include: [:movie_type]).serializable_hash } + subject(:hash) { movie_serializer_class.new(build_movies(2), include: [:movie_type]).serializable_hash } let(:movie_serializer_class) { "#{key_transform}_movie_serializer".classify.constantize } diff --git a/spec/lib/object_serializer_spec.rb b/spec/lib/object_serializer_spec.rb index 42db8f0..dc846e6 100644 --- a/spec/lib/object_serializer_spec.rb +++ b/spec/lib/object_serializer_spec.rb @@ -10,7 +10,8 @@ describe FastJsonapi::ObjectSerializer do options[:meta] = { total: 2 } options[:links] = { self: 'self' } options[:include] = [:actors] - serializable_hash = MovieSerializer.new([movie, movie], options).serializable_hash + movies = build_movies(2) + serializable_hash = MovieSerializer.new(movies, options).serializable_hash expect(serializable_hash[:data].length).to eq 2 expect(serializable_hash[:data][0][:relationships].length).to eq 4 @@ -58,7 +59,8 @@ describe FastJsonapi::ObjectSerializer do it 'returns correct number of records when serialized_json is called for an array' do options = {} options[:meta] = { total: 2 } - json = MovieSerializer.new([movie, movie], options).serialized_json + movies = build_movies(2) + json = MovieSerializer.new(movies, options).serialized_json serializable_hash = JSON.parse(json) expect(serializable_hash['data'].length).to eq 2 expect(serializable_hash['meta']).to be_instance_of(Hash) @@ -124,7 +126,8 @@ describe FastJsonapi::ObjectSerializer do end it 'returns multiple records' do - json_hash = MovieSerializer.new([movie, movie]).as_json + movies = build_movies(2) + json_hash = MovieSerializer.new(movies).as_json expect(json_hash['data'].length).to eq 2 end @@ -139,7 +142,8 @@ describe FastJsonapi::ObjectSerializer do options = {} options[:meta] = { total: 2 } options[:include] = [:blah_blah] - expect { MovieSerializer.new([movie, movie], options).serializable_hash }.to raise_error(ArgumentError) + movies = build_movies(2) + expect { MovieSerializer.new(movies, options).serializable_hash }.to raise_error(ArgumentError) end it 'returns errors when serializing with non-existent and existent includes keys' do @@ -165,9 +169,10 @@ describe FastJsonapi::ObjectSerializer do options = {} options[:meta] = { total: 2 } options[:include] = [''] - expect(MovieSerializer.new([movie, movie], options).serializable_hash.keys).to eq [:data, :meta] + movies = build_movies(2) + expect(MovieSerializer.new(movies, options).serializable_hash.keys).to eq [:data, :meta] options[:include] = [nil] - expect(MovieSerializer.new([movie, movie], options).serializable_hash.keys).to eq [:data, :meta] + expect(MovieSerializer.new(movies, options).serializable_hash.keys).to eq [:data, :meta] end end