Sha256: aab5e9b229c6098fbd1f2be792376daa1509d3a51a524c2abfcd059ea77b5ebd

Contents?: true

Size: 1.77 KB

Versions: 46

Compression:

Stored size: 1.77 KB

Contents

# encoding: utf-8
require 'spec_helper'

describe Rack::Harakiri do
  before(:each) do
    @app = stub :app
    Process.stub! :kill # not taking any chances
  end
  context "defaults" do
    before(:each) do
      @ronin = Rack::Harakiri.new @app
    end
    it "should quit after a default amount of requests" do
      @ronin.instance_variable_get(:@quit_after_requests).should == 50
    end
    describe 'harakiri?' do
      it "should be true after 50 harakiri calls" do
        50.times { @ronin.harakiri }
        
        @ronin.harakiri?.should == true
      end
      it "should not be true after just 49 harakiri calls" do
        49.times { @ronin.harakiri }
        
        @ronin.harakiri?.should == false
      end
    end
    describe "harakiri" do
      it "should kill the process after 50 harakiri calls" do
        Process.should_receive(:kill).once
        
        50.times { @ronin.harakiri }
      end
      it "should not kill the process after 49 harakiri calls" do
        Process.should_receive(:kill).never
        
        49.times { @ronin.harakiri }
      end
    end
    describe "call" do
      before(:each) do
        @app.stub! :call
        @app.stub! :harakiri
      end
      it "calls harakiri" do
        @ronin.should_receive(:harakiri).once.with
        
        @ronin.call :env
      end
      it "calls the app" do
        @app.should_receive(:call).once.with :env
        
        @ronin.call :env
      end
    end
  end
  context "with harakiri set" do
    before(:each) do
      Rack::Harakiri.after = 100
      @ronin = Rack::Harakiri.new @app
    end
    after(:each) do
      Rack::Harakiri.after = nil
    end
    it "should quit after an amount of requests" do
      @ronin.instance_variable_get(:@quit_after_requests).should == 100
    end
  end
  
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
picky-2.7.0 spec/lib/rack/harakiri_spec.rb
picky-2.6.0 spec/lib/rack/harakiri_spec.rb
picky-2.5.2 spec/lib/rack/harakiri_spec.rb
picky-2.5.1 spec/lib/rack/harakiri_spec.rb
picky-2.5.0 spec/lib/rack/harakiri_spec.rb
picky-2.4.3 spec/lib/rack/harakiri_spec.rb
picky-2.4.2 spec/lib/rack/harakiri_spec.rb
picky-2.4.1 spec/lib/rack/harakiri_spec.rb
picky-2.4.0 spec/lib/rack/harakiri_spec.rb
picky-2.3.0 spec/lib/rack/harakiri_spec.rb
picky-2.2.1 spec/lib/rack/harakiri_spec.rb
picky-2.2.0 spec/lib/rack/harakiri_spec.rb
picky-2.1.2 spec/lib/rack/harakiri_spec.rb
picky-2.1.1 spec/lib/rack/harakiri_spec.rb
picky-2.1.0 spec/lib/rack/harakiri_spec.rb
picky-2.0.0 spec/lib/rack/harakiri_spec.rb
picky-2.0.0.pre3 spec/lib/rack/harakiri_spec.rb
picky-2.0.0.pre2 spec/lib/rack/harakiri_spec.rb
picky-2.0.0.pre1 spec/lib/rack/harakiri_spec.rb
picky-1.5.4 spec/lib/rack/harakiri_spec.rb