Sha256: fb681d8d80a3c9dc5a759fe7b2a99b5692fa8a8102fbf64f25d030fbda521c73

Contents?: true

Size: 1.59 KB

Versions: 57

Compression:

Stored size: 1.59 KB

Contents

require 'rails_helper'

describe LHS::Record do
  context 'inherit endpoints' do
    before(:each) do
      class Base < LHS::Record
        endpoint 'records/:id'
      end

      class Example < Base
      end
    end

    it 'inherits endpoints based on ruby class_attribute behaviour' do
      request = stub_request(:get, 'http://records/1').to_return(body: [].to_json)
      Example.find(1)
      Base.find(1)
      assert_requested(request, times: 2)
    end
  end

  context 'define endpoints in subclass' do
    before(:each) do
      class Base < LHS::Record
        endpoint 'records/:id'
      end

      class Example < Base
        endpoint 'records'
      end
    end

    it 'inherits endpoints based on ruby class_attribute behaviour' do
      stub_request(:get, 'http://records?color=blue').to_return(body: [].to_json)
      Example.where(color: 'blue')
      expect(
        -> { Base.all.first }
      ).to raise_error(RuntimeError, 'Compilation incomplete. Unable to find value for id.')
    end
  end

  context 'clashing endpoints between super and subclass' do
    before(:each) do
      class Base < LHS::Record
        endpoint 'records'
      end

      class Example < Base
        endpoint 'examples/:id'
      end
    end

    it 'inherits endpoints based on ruby class_attribute behaviour' do
      request = stub_request(:get, 'http://records?limit=100').to_return(body: [].to_json)
      Base.all.first
      assert_requested(request)

      request = stub_request(:get, 'http://examples/1').to_return(body: {}.to_json)
      Example.find(1)
      assert_requested(request)
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
lhs-14.6.5 spec/record/endpoint_inheritance_spec.rb
lhs-14.6.4 spec/record/endpoint_inheritance_spec.rb
lhs-14.6.3 spec/record/endpoint_inheritance_spec.rb
lhs-14.6.2 spec/record/endpoint_inheritance_spec.rb
lhs-14.6.1 spec/record/endpoint_inheritance_spec.rb
lhs-14.6.0 spec/record/endpoint_inheritance_spec.rb
lhs-14.5.0 spec/record/endpoint_inheritance_spec.rb
lhs-14.4.0 spec/record/endpoint_inheritance_spec.rb
lhs-14.3.4 spec/record/endpoint_inheritance_spec.rb
lhs-14.3.3 spec/record/endpoint_inheritance_spec.rb
lhs-14.3.2 spec/record/endpoint_inheritance_spec.rb
lhs-14.3.1 spec/record/endpoint_inheritance_spec.rb
lhs-14.3.0 spec/record/endpoint_inheritance_spec.rb
lhs-14.2.0 spec/record/endpoint_inheritance_spec.rb
lhs-14.1.1 spec/record/endpoint_inheritance_spec.rb
lhs-14.1.0 spec/record/endpoint_inheritance_spec.rb
lhs-14.0.3 spec/record/endpoint_inheritance_spec.rb
lhs-14.0.2 spec/record/endpoint_inheritance_spec.rb
lhs-14.0.1 spec/record/endpoint_inheritance_spec.rb
lhs-14.0.0 spec/record/endpoint_inheritance_spec.rb