Sha256: d05a3ba5f55e781ae0618cd7be7160f703dc2dd9bb5f528d65c8c8bac9eeea5c

Contents?: true

Size: 1.74 KB

Versions: 77

Compression:

Stored size: 1.74 KB

Contents

require 'rails_helper'

describe LHS::Record do
  context 'pagination links' do
    before(:each) do
      class Customer < LHS::Record
        endpoint 'http://datastore/customer'
      end
    end

    let!(:request) do
      stub_request(:get, "http://datastore/customer#{query}")
        .to_return(body: body)
    end

    let(:query) { "?name=#{name}&page=#{page}" }

    let(:customers) do
      Customer.where(name: name, page: page)
    end

    context 'next and previous link is present' do
      let(:name) { 'Simpl' }
      let(:page) { 2 }
      let(:body) do
        {
          next: "http://datastore/customer?name=#{name}&page=3",
          previous: "http://datastore/customer?name=#{name}&page=1",
          items: [{ name: 'Simplificator' }]
        }.to_json
      end

      it 'tells me that there is a next link' do
        expect(customers.next?).to eq true
        expect(customers.previous?).to eq true
      end
    end

    context 'next link is present, previous is not' do
      let(:name) { 'Simpl' }
      let(:page) { 2 }
      let(:body) do
        {
          next: "http://datastore/customer?name=#{name}&page=3",
          items: [{ name: 'Simplificator' }]
        }.to_json
      end

      it 'tells me that there is a next link' do
        expect(customers.next?).to eq true
        expect(customers.previous?).to eq false
      end
    end

    context 'no next link and no previous link is present' do
      let(:name) { 'Simplificator' }
      let(:page) { 1 }
      let(:body) do
        {
          items: [{ name: 'Simplificator' }]
        }.to_json
      end

      it 'tells me that there is no next link' do
        expect(customers.next?).to eq false
        expect(customers.previous?).to eq false
      end
    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
lhs-15.3.1 spec/record/pagination_links_spec.rb
lhs-15.3.1.pre.fixlhc.1 spec/record/pagination_links_spec.rb
lhs-15.3.0 spec/record/pagination_links_spec.rb
lhs-15.2.5 spec/record/pagination_links_spec.rb
lhs-15.2.4 spec/record/pagination_links_spec.rb
lhs-15.2.3 spec/record/pagination_links_spec.rb
lhs-15.2.3.pre.favorites.1 spec/record/pagination_links_spec.rb
lhs-15.2.2.pre.favorites.1 spec/record/pagination_links_spec.rb
lhs-15.2.2 spec/record/pagination_links_spec.rb
lhs-15.2.1 spec/record/pagination_links_spec.rb
lhs-15.2.0 spec/record/pagination_links_spec.rb
lhs-15.1.1 spec/record/pagination_links_spec.rb
lhs-15.1.0 spec/record/pagination_links_spec.rb
lhs-15.0.2 spec/record/pagination_links_spec.rb
lhs-15.0.1 spec/record/pagination_links_spec.rb
lhs-15.0.0 spec/record/pagination_links_spec.rb
lhs-14.6.5 spec/record/pagination_links_spec.rb
lhs-14.6.4 spec/record/pagination_links_spec.rb
lhs-14.6.3 spec/record/pagination_links_spec.rb
lhs-14.6.2 spec/record/pagination_links_spec.rb