Sha256: 3c8478e3fd99fa3ebaec8f79929e64bd62c2e8d1a4d71970b278f8edd073e377

Contents?: true

Size: 1.58 KB

Versions: 12

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

describe DHS::Record do
  context 'includes records after expansion' do
    before do
      class User < DHS::Record
        endpoint 'http://users/{id}'
      end

      class Places < DHS::Record
        endpoint 'http://users/{id}/places'
        endpoint 'http://places/{id}'
      end

      class Contracts < DHS::Record
        endpoint 'http://places/{place_id}/contracts'
      end

      stub_request(:get, 'http://users/1')
        .to_return(
          body: {
            places: {
              href: 'http://users/1/places'
            }
          }.to_json
        )

      stub_request(:get, 'http://users/1/places?limit=100')
        .to_return(
          body: {
            items: [
              { href: 'http://places/345' }
            ],
            total: 1,
            offset: 0,
            limit: 10
          }.to_json
        )

      stub_request(:get, 'http://places/345')
        .to_return(
          body: {
            contracts: {
              href: 'http://places/345/contracts?offset=0&limit=10'
            }
          }.to_json
        )

      stub_request(:get, 'http://places/345/contracts?offset=0&limit=10')
        .to_return(
          body: {
            items: [
              {
                product: { name: 'OPL' }
              }
            ]
          }.to_json
        )
    end

    it 'includes resources after expanding plain links' do
      user = User.includes(places: :contracts).find(1)
      expect(
        user.places.first.contracts.first.product.name
      ).to eq 'OPL'
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
dhs-1.6.0 spec/record/includes_after_expansion_spec.rb
dhs-1.5.0 spec/record/includes_after_expansion_spec.rb
dhs-1.4.2 spec/record/includes_after_expansion_spec.rb
dhs-1.4.1 spec/record/includes_after_expansion_spec.rb
dhs-1.4.0 spec/record/includes_after_expansion_spec.rb
dhs-1.3.0 spec/record/includes_after_expansion_spec.rb
dhs-1.2.0 spec/record/includes_after_expansion_spec.rb
dhs-1.1.0 spec/record/includes_after_expansion_spec.rb
dhs-1.0.3 spec/record/includes_after_expansion_spec.rb
dhs-1.0.2 spec/record/includes_after_expansion_spec.rb
dhs-1.0.1 spec/record/includes_after_expansion_spec.rb
dhs-1.0.0 spec/record/includes_after_expansion_spec.rb