Set type value when setting key transform
This commit is contained in:
parent
ba4e112829
commit
4a333d7276
@ -119,6 +119,9 @@ module FastJsonapi
|
|||||||
underscore: :underscore
|
underscore: :underscore
|
||||||
}
|
}
|
||||||
self.transform_method = mapping[transform_name.to_sym]
|
self.transform_method = mapping[transform_name.to_sym]
|
||||||
|
|
||||||
|
# ensure that the record type is correctly transformed
|
||||||
|
set_type(reflected_record_type) if reflected_record_type
|
||||||
end
|
end
|
||||||
|
|
||||||
def run_key_transform(input)
|
def run_key_transform(input)
|
||||||
|
@ -312,7 +312,6 @@ describe FastJsonapi::ObjectSerializer do
|
|||||||
movie_type_serializer_class.instance_eval do
|
movie_type_serializer_class.instance_eval do
|
||||||
include FastJsonapi::ObjectSerializer
|
include FastJsonapi::ObjectSerializer
|
||||||
set_key_transform key_transform
|
set_key_transform key_transform
|
||||||
set_type :movie_type
|
|
||||||
attributes :name
|
attributes :name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -321,25 +320,25 @@ describe FastJsonapi::ObjectSerializer do
|
|||||||
context 'when key_transform is dash' do
|
context 'when key_transform is dash' do
|
||||||
let(:key_transform) { :dash }
|
let(:key_transform) { :dash }
|
||||||
|
|
||||||
it_behaves_like 'returning key transformed hash', :'movie-type', :'release-year'
|
it_behaves_like 'returning key transformed hash', :'movie-type', :'dash-movie-type', :'release-year'
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when key_transform is camel' do
|
context 'when key_transform is camel' do
|
||||||
let(:key_transform) { :camel }
|
let(:key_transform) { :camel }
|
||||||
|
|
||||||
it_behaves_like 'returning key transformed hash', :MovieType, :ReleaseYear
|
it_behaves_like 'returning key transformed hash', :MovieType, :CamelMovieType, :ReleaseYear
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when key_transform is camel_lower' do
|
context 'when key_transform is camel_lower' do
|
||||||
let(:key_transform) { :camel_lower }
|
let(:key_transform) { :camel_lower }
|
||||||
|
|
||||||
it_behaves_like 'returning key transformed hash', :movieType, :releaseYear
|
it_behaves_like 'returning key transformed hash', :movieType, :camelLowerMovieType, :releaseYear
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when key_transform is underscore' do
|
context 'when key_transform is underscore' do
|
||||||
let(:key_transform) { :underscore }
|
let(:key_transform) { :underscore }
|
||||||
|
|
||||||
it_behaves_like 'returning key transformed hash', :movie_type, :release_year
|
it_behaves_like 'returning key transformed hash', :movie_type, :underscore_movie_type, :release_year
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -8,11 +8,11 @@ RSpec.shared_examples 'returning correct relationship hash' do |serializer, id_m
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
RSpec.shared_examples 'returning key transformed hash' do |movie_type, release_year|
|
RSpec.shared_examples 'returning key transformed hash' do |movie_type, serializer_type, release_year|
|
||||||
it 'returns correctly transformed hash' do
|
it 'returns correctly transformed hash' do
|
||||||
expect(hash[:data][0][:attributes]).to have_key(release_year)
|
expect(hash[:data][0][:attributes]).to have_key(release_year)
|
||||||
expect(hash[:data][0][:relationships]).to have_key(movie_type)
|
expect(hash[:data][0][:relationships]).to have_key(movie_type)
|
||||||
expect(hash[:data][0][:relationships][movie_type][:data][:type]).to eq(movie_type)
|
expect(hash[:data][0][:relationships][movie_type][:data][:type]).to eq(movie_type)
|
||||||
expect(hash[:included][0][:type]).to eq(movie_type)
|
expect(hash[:included][0][:type]).to eq(serializer_type)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user