Sha256: fb1895f1cbe54c43b2ac0cf463c393cd7e78d50557d3c1a2601522598879136e

Contents?: true

Size: 731 Bytes

Versions: 4

Compression:

Stored size: 731 Bytes

Contents

require 'rest-core/test'

describe RC::Timeout do
  app = RC::Timeout.new(RC::Dry.new, 0)

  after do
    WebMock.reset!
    Muack.verify
  end

  should 'bypass timeout if timeout is 0' do
    mock(app).monitor.times(0)
    app.call({}){ |e| e.should.eq({}) }
  end

  should 'run the monitor to setup timeout' do
    env = {'timeout' => 2}
    mock(app).monitor(env)
    app.call(env){|e| e[RC::TIMER].should.kind_of?(RC::Timer)}
  end

  should "not raise timeout error if there's already an error" do
    env = {'timeout' => 0.01}
    mock(app.app).call(hash_including(env)){ raise "error" }
    lambda{ app.call(env){} }.should    .raise(RuntimeError)
    lambda{ sleep 0.01      }.should.not.raise(Timeout::Error)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rest-core-3.2.0 test/test_timeout.rb
rest-core-3.1.1 test/test_timeout.rb
rest-core-3.1.0 test/test_timeout.rb
rest-core-3.0.0 test/test_timeout.rb