aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/subscriber_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/test/subscriber_test.rb')
-rw-r--r--railties/test/subscriber_test.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/railties/test/subscriber_test.rb b/railties/test/subscriber_test.rb
index fa3f7bfabb..724e8a75d6 100644
--- a/railties/test/subscriber_test.rb
+++ b/railties/test/subscriber_test.rb
@@ -18,6 +18,10 @@ class MySubscriber < Rails::Subscriber
def bar(event)
info "#{color("cool", :red)}, #{color("isn't it?", :blue, true)}"
end
+
+ def puke(event)
+ raise "puke"
+ end
end
module SubscriberTest
@@ -105,6 +109,16 @@ module SubscriberTest
assert_equal 1, @logger.flush_count
end
+ def test_logging_thread_does_not_die_on_failures
+ Rails::Subscriber.add :my_subscriber, @subscriber
+ instrument "my_subscriber.puke"
+ instrument "action_dispatch.after_dispatch"
+ wait
+ assert_equal 1, @logger.flush_count
+ assert_equal 1, @logger.logged(:error).size
+ assert_equal 'Could not log "my_subscriber.puke" event. RuntimeError: puke', @logger.logged(:error).last
+ end
+
def test_tails_logs_when_action_dispatch_callback_is_received
log_tailer = mock()
log_tailer.expects(:tail!)