diff options
Diffstat (limited to 'railties/test/subscriber_test.rb')
-rw-r--r-- | railties/test/subscriber_test.rb | 14 |
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!) |