Sha256: 5ccb2f1f58a4fd9e543ca9b12c07577ecad97cf68602143a635d123d368d1214
Contents?: true
Size: 1.33 KB
Versions: 2
Compression:
Stored size: 1.33 KB
Contents
require File.join(File.dirname(__FILE__), '..', 'spec_helper') describe Rack::Throttle::Interval do include Rack::Test::Methods def app @target_app ||= example_target_app @app ||= Rack::Throttle::Interval.new(@target_app, :min => 0.1) end it "should allow the request if the source has not been seen" do get "/foo" expect(last_response.body).to show_allowed_response end it "should allow the request if the source has not been seen in the current interval" do Timecop.freeze do get "/foo" Timecop.freeze(1) do # Timecop.freeze won't do subsecond resolution get "/foo" end end expect(last_response.body).to show_allowed_response end it "should not allow the request if the source has been seen inside the current interval" do Timecop.freeze do 2.times { get "/foo" } end expect(last_response.body).to show_throttled_response end it "should gracefully allow the request if the cache bombs on getting" do expect(app).to receive(:cache_get).and_raise(StandardError) get "/foo" expect(last_response.body).to show_allowed_response end it "should gracefully allow the request if the cache bombs on setting" do expect(app).to receive(:cache_set).and_raise(StandardError) get "/foo" expect(last_response.body).to show_allowed_response end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
improved-rack-throttle-0.9.0 | spec/limiters/interval_spec.rb |
improved-rack-throttle-0.8.0 | spec/limiters/interval_spec.rb |