Sha256: 306d6e5f7234164d421744c3780a17ddebc4d841bf0ac6dd95619569b3837b25

Contents?: true

Size: 1.44 KB

Versions: 17

Compression:

Stored size: 1.44 KB

Contents

require "spec_helper"

describe Intercom::CollectionProxy do

  it "stops iterating if no next link" do
    Intercom.expects(:get).with("/users", {}).returns(page_of_users(include_next_link:false))
    emails = []
    Intercom::User.all.each { |user| emails << user.email }
    emails.must_equal %W(user1@example.com user2@example.com user3@example.com)
  end

  it "keeps iterating if next link" do
    Intercom.expects(:get).with("/users", {}).returns(page_of_users(include_next_link:true))
    Intercom.expects(:get).with('https://api.intercom.io/users?per_page=50&page=2', {}).returns(page_of_users(include_next_link:false))
    emails = []
    Intercom::User.all.each { |user| emails << user.email }
  end

  it "supports indexed array access" do
    Intercom.expects(:get).with("/users", {}).returns(page_of_users(include_next_link:false))
    Intercom::User.all[0].email.must_equal 'user1@example.com'
  end

  it "supports map" do
    Intercom.expects(:get).with("/users", {}).returns(page_of_users(include_next_link:false))
    emails = Intercom::User.all.map { |user| user.email }
    emails.must_equal %W(user1@example.com user2@example.com user3@example.com)
  end

  it "supports querying" do
    Intercom.expects(:get).with("/users", {:tag_name => 'Taggart J'}).returns(page_of_users(include_next_link:false))
    Intercom::User.find_all(:tag_name => 'Taggart J').map(&:email).must_equal %W(user1@example.com user2@example.com user3@example.com)
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
intercom-2.3.0 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.2.4 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.2.3 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.2.2 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.2.1 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.2.0 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.1.6 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.1.5 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.1.4 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.1.3 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.1.2 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.1.1 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.1.0 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.0.3 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.0.2 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.0.1 spec/unit/intercom/collection_proxy_spec.rb
intercom-2.0.0 spec/unit/intercom/collection_proxy_spec.rb