Sha256: 9dc66587f455217719dac1730bf001841b45494ba1f93784a08d3b1307255fe5
Contents?: true
Size: 1.53 KB
Versions: 1
Compression:
Stored size: 1.53 KB
Contents
require 'unit_spec_helper' require 'simple_serializer' describe SimpleSerializer::Serializer do let(:object) { double } class TestSerializer < SimpleSerializer::Serializer hash_attributes :field1, :field2 end describe 'serialize' do it 'sets attributes' do object = double(field1: 1, field2: 2) result = TestSerializer.serialize(object) expect(result).to eq({field1: 1, field2: 2}) end describe 'value transformation' do class TestTransformingSerializer < SimpleSerializer::Serializer hash_attributes :field1 def field1 object.field1 + 1 end end it 'maps values' do object = double(field1: 1) result = TestTransformingSerializer.serialize(object) expect(result).to eq({field1: 2}) end end # This should work in a Rails controller when the ActiveModelSerializers gem is loaded: # # render json: object, serializer: TestSerializer it 'is api-compatible with ActiveModel::Serializer' do object = double(field1: 1, field2: 2) options = {} result = TestSerializer.new(object, options).serialize(options) expect(result).to eq({field1: 1, field2: 2}) end end describe 'serialize_array' do it 'serializes many objects' do object1 = double(field1: 1, field2: 2) object2 = double(field1: 3, field2: 4) result = TestSerializer.serialize_array([object1, object2]) expect(result).to eq([{field1: 1, field2: 2}, {field1: 3, field2: 4}]) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
simple_serializer-1.0.2 | spec/unit/simple_serializer/serializer_spec.rb |