Sha256: 00e4293ee0e2a71a7ed377415da70049a02a8e0f1bce051b831fac498ac2f58f

Contents?: true

Size: 1.25 KB

Versions: 3

Compression:

Stored size: 1.25 KB

Contents

require 'rails_helper'

describe LHS::Collection do
  let(:search) { 'http://local.ch/search' }
  let(:limit) { 10 }
  let(:total) { 20 }
  let(:offset) { 0 }
  let(:first_response_data) do
    {
      docs: (1..10).to_a,
      start: offset,
      size: limit,
      totalResults: total
    }
  end
  let(:second_response_data) do
    {
      docs: (11..20).to_a,
      start: offset,
      size: limit,
      totalResults: total
    }
  end

  before(:each) do
    LHC.config.placeholder('search', search)
    class Search < LHS::Record
      configuration items: :docs, limit: :size, offset: :start, total: :totalResults
      endpoint ':search/:type'
    end
    stub_request(:get, "http://local.ch/search/phonebook?size=10").to_return(body: first_response_data.to_json)
    stub_request(:get, "http://local.ch/search/phonebook?size=10&start=11").to_return(body: second_response_data.to_json)
  end

  context 'lets you configure how to deal with collections' do
    it 'initalises and gives access to collections according to configuration' do
      results = Search.all(type: :phonebook, size: 10)
      expect(results.count).to eq total
      expect(results.total).to eq total
      expect(results.limit).to eq limit
      expect(results.offset).to eq offset
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
lhs-3.4.2 spec/collection/configurable_spec.rb
lhs-3.4.1 spec/collection/configurable_spec.rb
lhs-3.4.0 spec/collection/configurable_spec.rb