Sha256: baf31c476a2f3ab370cb9f64aa51a9cbdc9b96275279bdea27f5485a6f5e14ac

Contents?: true

Size: 825 Bytes

Versions: 14

Compression:

Stored size: 825 Bytes

Contents

require 'spec_helper'

RSpec.describe Zendesk2::RateLimit do
  class Puppet
    def self.add_response(response)
      self.responses.unshift(response)
    end

    def self.responses
      @responses ||= []
    end

    def self.call(env)
      self.responses.shift || raise("not response set")
    end
  end

  it "should delay requests for the specified time" do
    client = Faraday.new do |connection|
      connection.use Zendesk2::RateLimit
      connection.adapter :rack, Puppet
    end

    Puppet.responses << [429, {"Retry-After" => 0.1}, []]
    Puppet.responses << [429, {"Retry-After" => 0.2}, []]
    Puppet.responses << [200, {}, ["something"]]

    response = client.get("/")

    expect(response.status).to eq(200)
    expect(response.headers[:rate_limits].to_s).to match(/^0\.3/) # ugh float math
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
zendesk2-1.9.0 spec/lib/rate_limit_spec.rb
zendesk2-1.8.1 spec/lib/rate_limit_spec.rb
zendesk2-1.7.5 spec/lib/rate_limit_spec.rb
zendesk2-1.7.4 spec/lib/rate_limit_spec.rb
zendesk2-1.7.2 spec/lib/rate_limit_spec.rb
zendesk2-1.7.1 spec/lib/rate_limit_spec.rb
zendesk2-1.7.0 spec/lib/rate_limit_spec.rb
zendesk2-1.6.1 spec/lib/rate_limit_spec.rb
zendesk2-1.5.17 spec/lib/rate_limit_spec.rb
zendesk2-1.5.16 spec/lib/rate_limit_spec.rb
zendesk2-1.5.15 spec/lib/rate_limit_spec.rb
zendesk2-1.5.14 spec/lib/rate_limit_spec.rb
zendesk2-1.5.13 spec/lib/rate_limit_spec.rb
zendesk2-1.5.12 spec/lib/rate_limit_spec.rb