Sha256: 7e858edc7622edeff811cf9b35357188ad729bd48c5a876102f358528e4a82a2

Contents?: true

Size: 850 Bytes

Versions: 6

Compression:

Stored size: 850 Bytes

Contents

# frozen_string_literal: true
require 'spec_helper'

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

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

    def self.call(_env)
      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

6 entries across 6 versions & 1 rubygems

Version Path
zendesk2-1.15.0 spec/lib/rate_limit_spec.rb
zendesk2-1.13.1 spec/lib/rate_limit_spec.rb
zendesk2-1.13.0 spec/lib/rate_limit_spec.rb
zendesk2-1.12.0 spec/lib/rate_limit_spec.rb
zendesk2-1.11.0 spec/lib/rate_limit_spec.rb
zendesk2-1.10.0 spec/lib/rate_limit_spec.rb