Sha256: d12793bf567cb8375210887ea7df8bc5ecc174df80aeb8c2842fbe0d498f1124

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

RSpec.describe :register_type do
  link :build_mapper_factory, from: :ree_mapper
  link :build_mapper_strategy, from: :ree_mapper
  link :build_serializer_schema, from: :ree_swagger
  link :register_type, from: :ree_swagger

  class ReeSwagger::MyType < ReeMapper::AbstractType
    def serialize(obj, role: nil)
      obj.inspect
    end
  end

  let(:mapper_factory) {
    strategies = [
      build_mapper_strategy(method: :serialize, dto: Hash),
    ]

    build_mapper_factory(strategies: strategies).register(
      :my_type,
      ReeMapper::Mapper.build(
        strategies,
        ReeSwagger::MyType.new
      )
    )
  }

  let(:mapper) {
    mapper_factory.call.use(:serialize) do
      my_type :name
    end
  }

  before do
    register_type(
      :serializers,
      ReeSwagger::MyType,
      ->(my_type, build_serializer_schema) {
        {
          type: 'string'
        }
      }
    )
  end

  it {
    expect(build_serializer_schema(mapper)).to eq(
      {
        type: 'object',
        properties: {
          name: {
            type: 'string'
          }
        }
      }
    )
  }
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ree_lib-1.0.35 lib/ree_lib/packages/ree_swagger/spec/functions/register_type_spec.rb
ree_lib-1.0.34 lib/ree_lib/packages/ree_swagger/spec/functions/register_type_spec.rb
ree_lib-1.0.33 lib/ree_lib/packages/ree_swagger/spec/functions/register_type_spec.rb
ree_lib-1.0.32 lib/ree_lib/packages/ree_swagger/spec/functions/register_type_spec.rb
ree_lib-1.0.31 lib/ree_lib/packages/ree_swagger/spec/functions/register_type_spec.rb