Sha256: 5dd01a8987ccbb8615a668a914b4662fcd27386e8b43b0f18aaf4322814c42b9

Contents?: true

Size: 1.57 KB

Versions: 34

Compression:

Stored size: 1.57 KB

Contents

require 'core/spec_helper'

describe ZendeskAPI::ReadResource do
  context "find" do
    let(:id) { 1 }
    subject { ZendeskAPI::TestResource }

    context "normal request" do
      before(:each) do
        stub_json_request(:get, %r{test_resources/#{id}}, json("test_resource" => {}))
      end

      it "should return instance of resource" do
        subject.find(client, :id => id).should be_instance_of(subject)
      end
    end

    it "should blow up without an id which would build an invalid url" do
      expect{
        ZendeskAPI::User.find(client, :foo => :bar)
      }.to raise_error("No :id given")
    end

    context "with side loads" do
      before(:each) do
        stub_json_request(:get, %r{test_resources/#{id}\?include=nil_resource}, json(
          "test_resource" => { :id => 1, :nil_resource_id => 2 },
          "nil_resources" => [{ :id => 1, :name => :bye }, { :id => 2, :name => :hi }]
        ))

        subject.has ZendeskAPI::NilResource
        @resource = subject.find(client, :id => id, :include => :nil_resource)
      end

      it "should side load nil resource" do
        @resource.nil_resource.name.should == "hi"
      end
    end

    context "with client error" do
      it "should handle 500 properly" do
        stub_request(:get, %r{test_resources/#{id}}).to_return(:status => 500)
        subject.find(client, :id => id).should == nil
      end

      it "should handle 404 properly" do
        stub_request(:get, %r{test_resources/#{id}}).to_return(:status => 404)
        subject.find(client, :id => id).should == nil
      end
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
zendesk_api-1.3.7 spec/core/read_resource_spec.rb
zendesk_api-1.2.10 spec/core/read_resource_spec.rb
zendesk_api-1.2.9 spec/core/read_resource_spec.rb
zendesk_api-1.2.8 spec/core/read_resource_spec.rb
zendesk_api-1.3.5 spec/core/read_resource_spec.rb
zendesk_api-1.2.7 spec/core/read_resource_spec.rb
zendesk_api-1.3.4 spec/core/read_resource_spec.rb
zendesk_api-1.3.2 spec/core/read_resource_spec.rb
zendesk_api-1.3.1 spec/core/read_resource_spec.rb
zendesk_api-1.3.0 spec/core/read_resource_spec.rb
zendesk_api-1.3.0.rc3 spec/core/read_resource_spec.rb
zendesk_api-1.2.6 spec/core/read_resource_spec.rb
zendesk_api-1.3.0.rc2 spec/core/read_resource_spec.rb
zendesk_api-1.3.0.rc1 spec/core/read_resource_spec.rb
zendesk_api-1.2.5 spec/core/read_resource_spec.rb
zendesk_api-1.2.4 spec/core/read_resource_spec.rb
zendesk_api-1.2.3 spec/core/read_resource_spec.rb
zendesk_api-1.2.2 spec/core/read_resource_spec.rb
zendesk_api-1.2.1 spec/core/read_resource_spec.rb
zendesk_api-1.1.3 spec/core/read_resource_spec.rb