Sha256: 0ba612ef9917c72d9a5867d1243ab0837847c091fbbdbad038def87f401dbfdf

Contents?: true

Size: 782 Bytes

Versions: 6

Compression:

Stored size: 782 Bytes

Contents

RSpec.describe Redd::RateLimit do
  let(:rate_limit) { Redd::RateLimit.new(2) }

  it "waits two seconds between consecutive requests" do
    rate_limit.after_limit {}
    start_time = Time.now
    rate_limit.after_limit {}
    end_time = Time.now

    expect(end_time - start_time).to be_within(0.1).of(2)
  end

  it "doesn't wait if two seconds have passed since last request" do
    rate_limit.after_limit {}
    sleep(2)
    start_time = Time.now
    rate_limit.after_limit {}
    end_time = Time.now

    expect(end_time - start_time).to be_within(0.1).of(0)
  end

  it "stores the time the last request was made" do
    time = Time.now
    rate_limit.after_limit {}

    expect(rate_limit.last_request_time).to be_within(0.1).of(time)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
redd-0.7.5 spec/redd/rate_limit_spec.rb
redd-0.7.4 spec/redd/rate_limit_spec.rb
redd-0.7.3 spec/redd/rate_limit_spec.rb
redd-0.7.2 spec/redd/rate_limit_spec.rb
redd-0.7.1 spec/redd/rate_limit_spec.rb
redd-0.7.0 spec/redd/rate_limit_spec.rb