Sha256: 3fd7c26a5fff42d889288c5d8ab978b2f331366bd094b2d6e050c98babc317d9

Contents?: true

Size: 1.29 KB

Versions: 12

Compression:

Stored size: 1.29 KB

Contents

require 'spec_helper'

describe ZendeskAPI::Middleware::Request::Retry do
  def runtime
    start = Time.now.to_f
    yield
    Time.now.to_f - start
  end

  [429, 503].each do |error_code|
    it "should wait requisite seconds and then retry request on #{error_code}" do
      stub_request(:get, %r{blergh}).
        to_return(:status => 429, :headers => { :retry_after => 1 }).
        to_return(:status => 200)

      runtime do
        client.connection.get("blergh").status.should == 200
      end.should be_within(0.2).of(1)
    end
  end

  context "with failing request", :prevent_logger_changes do
    before do
      stub_request(:get, %r{blergh}).
        to_return(:status => 503).
        to_return(:status => 200)

      ZendeskAPI::Middleware::Request::Retry.any_instance.should_receive(:sleep).exactly(10).times.with(1)
    end

    it "should wait default timeout seconds and then retry request on error" do
      runtime do
        client.connection.get("blergh").status.should == 200
      end.should <= 0.5
    end

    it "should print to logger" do
      client.config.logger.should_receive(:warn).at_least(:once)
      client.connection.get("blergh")
    end

    it "should not fail without a logger" do
      client.config.logger = false
      client.connection.get("blergh")
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
zendesk_api-0.1.11 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.10 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.9 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.8 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.7 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.6 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.5 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.4 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.3 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.2 spec/middleware/request/retry_spec.rb
zendesk_api-0.1.1 spec/middleware/request/retry_spec.rb
zendesk_api-0.0.9 spec/middleware/request/retry_spec.rb