Sha256: 248bae0452d74431bccc73c54e525113c75f596b26067eb77565faacfa9d0c43

Contents?: true

Size: 904 Bytes

Versions: 1

Compression:

Stored size: 904 Bytes

Contents

require File.join(File.dirname(__FILE__), '..', 'spec_helper')

describe Rack::Throttle::Hourly do
  include Rack::Test::Methods

  def app
    @target_app ||= example_target_app
    @app ||= Rack::Throttle::Hourly.new(@target_app, :max_per_hour => 3)
  end

  it "should be allowed if not seen this hour" do
    get "/foo"
    last_response.body.should show_allowed_response
  end
  
  it "should be allowed if seen fewer than the max allowed per hour" do
    2.times { get "/foo" }
    last_response.body.should show_allowed_response
  end
  
  it "should not be allowed if seen more times than the max allowed per hour" do
    4.times { get "/foo" }
    last_response.body.should show_throttled_response
  end

  it "should have an associated default_ttl" do
    app.class.default_ttl.should be_an_instance_of Fixnum
  end


  # TODO mess with time travelling and requests to make sure no overlap
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
improved-rack-throttle-w-expiry-0.8.0 spec/limiters/hourly_spec.rb