Sha256: 8d38b56e0819061e19473a74a0dce2a0d382ef38012b4a951a967be9cb78d63e

Contents?: true

Size: 1016 Bytes

Versions: 76

Compression:

Stored size: 1016 Bytes

Contents

# frozen_string_literal: true

require 'rails_helper'

describe LHS::Collection do
  let(:datastore) { 'http://local.ch/v2' }
  let(:items) { [{ name: 'Steve' }] }
  let(:collection) { Account.where }

  before do
    LHC.config.placeholder('datastore', datastore)
    class Account < LHS::Record
      endpoint '{+datastore}/accounts'
    end
    stub_request(:get, "http://local.ch/v2/accounts")
      .to_return(body: response_data.to_json)
  end

  context 'plain array' do
    let(:response_data) do
      items
    end

    it 'initalises a collection' do
      expect(collection.first.name).to eq 'Steve'
    end

    it 'casts items to be instance of defined LHS::Record' do
      expect(collection.first).to be_kind_of Account
    end
  end

  context 'items key' do
    let(:response_data) do
      {
        items: items
      }
    end

    it 'initalises a collection when reponse contains a key items containing an array of items' do
      expect(collection.first.name).to eq 'Steve'
    end
  end
end

Version data entries

76 entries across 76 versions & 1 rubygems

Version Path
lhs-26.2.0 spec/collection/collection_items_spec.rb
lhs-26.1.0 spec/collection/collection_items_spec.rb
lhs-26.0.1 spec/collection/collection_items_spec.rb
lhs-26.0.0 spec/collection/collection_items_spec.rb
lhs-25.2.0 spec/collection/collection_items_spec.rb
lhs-25.1.0 spec/collection/collection_items_spec.rb
lhs-25.0.4 spec/collection/collection_items_spec.rb
lhs-25.0.3 spec/collection/collection_items_spec.rb
lhs-25.0.2 spec/collection/collection_items_spec.rb
lhs-25.0.1 spec/collection/collection_items_spec.rb
lhs-25.0.0 spec/collection/collection_items_spec.rb
lhs-24.1.2 spec/collection/collection_items_spec.rb
lhs-24.1.1 spec/collection/collection_items_spec.rb
lhs-24.1.0 spec/collection/collection_items_spec.rb
lhs-24.1.0.pre.2 spec/collection/collection_items_spec.rb
lhs-24.1.0.pre.1 spec/collection/collection_items_spec.rb
lhs-24.0.0 spec/collection/collection_items_spec.rb
lhs-23.0.2 spec/collection/collection_items_spec.rb
lhs-23.0.1 spec/collection/collection_items_spec.rb
lhs-23.0.0 spec/collection/collection_items_spec.rb