Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

59 lines (45 sloc) 1.541 kb
require File.dirname(__FILE__) + '/helper'
class RackTest < Test::Unit::TestCase
should "call the upstream app with the environment" do
environment = { 'key' => 'value' }
app = lambda { |env| ['response', {}, env] }
stack = HoptoadNotifier::Rack.new(app)
response = stack.call(environment)
assert_equal ['response', {}, environment], response
end
should "deliver an exception raised while calling an upstream app" do
HoptoadNotifier.stubs(:notify_or_ignore)
exception = build_exception
environment = { 'key' => 'value' }
app = lambda do |env|
raise exception
end
begin
stack = HoptoadNotifier::Rack.new(app)
stack.call(environment)
rescue Exception => raised
assert_equal exception, raised
else
flunk "Didn't raise an exception"
end
assert_received(HoptoadNotifier, :notify_or_ignore) do |expect|
expect.with(exception, :rack_env => environment)
end
end
should "deliver an exception in rack.exception" do
HoptoadNotifier.stubs(:notify_or_ignore)
exception = build_exception
environment = { 'key' => 'value' }
response = [200, {}, ['okay']]
app = lambda do |env|
env['rack.exception'] = exception
response
end
stack = HoptoadNotifier::Rack.new(app)
actual_response = stack.call(environment)
assert_equal response, actual_response
assert_received(HoptoadNotifier, :notify_or_ignore) do |expect|
expect.with(exception, :rack_env => environment)
end
end
end
Jump to Line
Something went wrong with that request. Please try again.