mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add notifications to default middleware stack and update subscriber tests.
This commit is contained in:
parent
0334f9f6cf
commit
8f5e733998
5 changed files with 7 additions and 5 deletions
|
@ -14,6 +14,7 @@ module Rails
|
||||||
middleware.use('::Rack::Lock', :if => lambda { !ActionController::Base.allow_concurrency })
|
middleware.use('::Rack::Lock', :if => lambda { !ActionController::Base.allow_concurrency })
|
||||||
middleware.use('::Rack::Runtime')
|
middleware.use('::Rack::Runtime')
|
||||||
middleware.use('ActionDispatch::ShowExceptions', lambda { ActionController::Base.consider_all_requests_local })
|
middleware.use('ActionDispatch::ShowExceptions', lambda { ActionController::Base.consider_all_requests_local })
|
||||||
|
middleware.use('ActionDispatch::Notifications')
|
||||||
middleware.use('ActionDispatch::Callbacks', lambda { ActionController::Dispatcher.prepare_each_request })
|
middleware.use('ActionDispatch::Callbacks', lambda { ActionController::Dispatcher.prepare_each_request })
|
||||||
middleware.use('ActionDispatch::Cookies')
|
middleware.use('ActionDispatch::Cookies')
|
||||||
middleware.use(lambda { ActionController::Base.session_store }, lambda { ActionController::Base.session_options })
|
middleware.use(lambda { ActionController::Base.session_store }, lambda { ActionController::Base.session_options })
|
||||||
|
|
|
@ -66,7 +66,7 @@ module Rails
|
||||||
subscriber.send(name, ActiveSupport::Notifications::Event.new(*args))
|
subscriber.send(name, ActiveSupport::Notifications::Event.new(*args))
|
||||||
end
|
end
|
||||||
|
|
||||||
if args[0] == "action_dispatch.callback" && !subscribers.empty?
|
if args[0] == "action_dispatch.after_dispatch" && !subscribers.empty?
|
||||||
flush_all!
|
flush_all!
|
||||||
log_tailer.tail! if log_tailer
|
log_tailer.tail! if log_tailer
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,6 +18,7 @@ module ApplicationTests
|
||||||
"Rack::Lock",
|
"Rack::Lock",
|
||||||
"Rack::Runtime",
|
"Rack::Runtime",
|
||||||
"ActionDispatch::ShowExceptions",
|
"ActionDispatch::ShowExceptions",
|
||||||
|
"ActionDispatch::Notifications",
|
||||||
"ActionDispatch::Callbacks",
|
"ActionDispatch::Callbacks",
|
||||||
"ActionDispatch::Cookies",
|
"ActionDispatch::Cookies",
|
||||||
"ActionDispatch::Session::CookieStore",
|
"ActionDispatch::Session::CookieStore",
|
||||||
|
|
|
@ -64,7 +64,7 @@ module ApplicationTests
|
||||||
|
|
||||||
ActiveRecord::Base.logger = logger = MockLogger.new
|
ActiveRecord::Base.logger = logger = MockLogger.new
|
||||||
|
|
||||||
# Mimic an ActiveRecord notifications
|
# Mimic ActiveRecord notifications
|
||||||
instrument "active_record.sql", :name => "SQL", :sql => "SHOW tables"
|
instrument "active_record.sql", :name => "SQL", :sql => "SHOW tables"
|
||||||
wait
|
wait
|
||||||
|
|
||||||
|
|
|
@ -92,7 +92,7 @@ module SubscriberTest
|
||||||
|
|
||||||
def test_flushes_loggers_when_action_dispatch_callback_is_received
|
def test_flushes_loggers_when_action_dispatch_callback_is_received
|
||||||
Rails::Subscriber.add :my_subscriber, @subscriber
|
Rails::Subscriber.add :my_subscriber, @subscriber
|
||||||
instrument "action_dispatch.callback"
|
instrument "action_dispatch.after_dispatch"
|
||||||
wait
|
wait
|
||||||
assert_equal 1, @logger.flush_count
|
assert_equal 1, @logger.flush_count
|
||||||
end
|
end
|
||||||
|
@ -100,7 +100,7 @@ module SubscriberTest
|
||||||
def test_flushes_the_same_logger_just_once
|
def test_flushes_the_same_logger_just_once
|
||||||
Rails::Subscriber.add :my_subscriber, @subscriber
|
Rails::Subscriber.add :my_subscriber, @subscriber
|
||||||
Rails::Subscriber.add :another, @subscriber
|
Rails::Subscriber.add :another, @subscriber
|
||||||
instrument "action_dispatch.callback"
|
instrument "action_dispatch.after_dispatch"
|
||||||
wait
|
wait
|
||||||
assert_equal 1, @logger.flush_count
|
assert_equal 1, @logger.flush_count
|
||||||
end
|
end
|
||||||
|
@ -111,7 +111,7 @@ module SubscriberTest
|
||||||
Rails::Subscriber.log_tailer = log_tailer
|
Rails::Subscriber.log_tailer = log_tailer
|
||||||
|
|
||||||
Rails::Subscriber.add :my_subscriber, @subscriber
|
Rails::Subscriber.add :my_subscriber, @subscriber
|
||||||
instrument "action_dispatch.callback"
|
instrument "action_dispatch.after_dispatch"
|
||||||
wait
|
wait
|
||||||
ensure
|
ensure
|
||||||
Rails::Subscriber.log_tailer = nil
|
Rails::Subscriber.log_tailer = nil
|
||||||
|
|
Loading…
Reference in a new issue