Sha256: d5047e80bfd48af87e36e660a356a4a67aae17c2192574b6f2380dccb0e5a986

Contents?: true

Size: 1.31 KB

Versions: 14

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

describe LHS::Record do
  context 'set options for an endpoint' do
    before do
      class Record < LHS::Record
        endpoint 'backend/v2/feedbacks/{id}', cache_expires_in: 1.day, retry: 2, cache: true
      end
    end

    it 'stores endpoints with options' do
      expect(Record.endpoints[0].options).to eq(cache_expires_in: 86400, retry: 2, cache: true)
    end

    it 'uses the options that are configured for an endpoint' do
      expect(LHC).to receive(:request).with(cache_expires_in: 1.day, retry: 2, cache: true, url: 'backend/v2/feedbacks/1').and_call_original
      stub_request(:get, "http://backend/v2/feedbacks/1").to_return(status: 200)
      Record.find(1)
    end

    context 'deep merge endpoint options' do

      before do
        class Location < LHS::Record
          endpoint 'http://uberall/locations', headers: { privateKey: '123' }
        end
      end

      it 'deep merges options to not overwrite endpoint options' do
        stub_request(:get, "http://uberall/locations")
          .with(
            headers: {
              'Privatekey' => '123',
              'X-Custom' => '123'
            }
          )
          .to_return(body: [].to_json)

        Location.options(headers: { 'X-Custom' => '123' }).fetch
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
lhs-19.1.0 spec/record/endpoint_options_spec.rb
lhs-19.0.2 spec/record/endpoint_options_spec.rb
lhs-19.0.1 spec/record/endpoint_options_spec.rb
lhs-19.0.0 spec/record/endpoint_options_spec.rb
lhs-19.0.0.pre.endpoint.1 spec/record/endpoint_options_spec.rb
lhs-18.0.3 spec/record/endpoint_options_spec.rb
lhs-18.0.2 spec/record/endpoint_options_spec.rb
lhs-18.0.1 spec/record/endpoint_options_spec.rb
lhs-18.0.0 spec/record/endpoint_options_spec.rb
lhs-17.0.1 spec/record/endpoint_options_spec.rb
lhs-17.0.1.pre1 spec/record/endpoint_options_spec.rb
lhs-18.0.0.pre.pre1 spec/record/endpoint_options_spec.rb
lhs-17.0.0 spec/record/endpoint_options_spec.rb
lhs-16.1.6 spec/record/endpoint_options_spec.rb