Sha256: dc40344aa3f93e3cb6375c9f875b33c7a969e1e2c821db3ea32bd9db44f089e2

Contents?: true

Size: 1.09 KB

Versions: 4

Compression:

Stored size: 1.09 KB

Contents

RSpec.describe ROM::HTTP::Dataset::ResponseTransformers::Schemad do
  let(:transformer) { ROM::HTTP::Dataset::ResponseTransformers::Schemad.new(schema) }
  let(:schema) do
    ROM::Plugins::Relation::Schema::Schema.create do
      attribute :id, 'form.int'
      attribute :name, 'strict.string'
      attribute :active, 'form.bool'
    end
  end

  describe '#call' do
    let(:response) do
      [
        {
          id: '1',
          name: 'Jill',
          email: 'jill@fakemail.com',
          active: 'true'
        }
      ]
    end
    let(:dataset) do
      double('ROM::HTTP::Dataset', projections: projections)
    end

    subject! { transformer.call(response, dataset) }

    context 'with no projections' do
      let(:projections) { [] }

      it do
        is_expected.to eq([
          id: 1,
          name: 'Jill',
          active: true
        ])
      end
    end

    context 'with projections' do
      let(:projections) { [:id, :name, :active] }

      it do
        is_expected.to eq([
          id: 1,
          name: 'Jill',
          active: true
        ])
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rom-http-0.4.0 spec/unit/rom/http/dataset/response_transformers/schemad_spec.rb
rom-http-0.3.0 spec/unit/rom/http/dataset/response_transformers/schemad_spec.rb
rom-http-0.2.0 spec/unit/rom/http/dataset/response_transformers/schemad_spec.rb
rom-http-0.2.0.beta1 spec/unit/rom/http/dataset/response_transformers/schemad_spec.rb