diff options
author | Kasper Timm Hansen <kaspth@gmail.com> | 2016-02-06 20:40:42 +0100 |
---|---|---|
committer | Kasper Timm Hansen <kaspth@gmail.com> | 2016-02-14 17:46:48 +0100 |
commit | 3ae8eb13cb4967f533339ecddf93e19f06caa6d2 (patch) | |
tree | c01fcf170819e1a2c23b517536b726f0eb4964a9 /actioncable/test/worker_test.rb | |
parent | 861ece99bb6d7ebdb27fad7db5ccc05340aaf0e5 (diff) | |
download | rails-3ae8eb13cb4967f533339ecddf93e19f06caa6d2.tar.gz rails-3ae8eb13cb4967f533339ecddf93e19f06caa6d2.tar.bz2 rails-3ae8eb13cb4967f533339ecddf93e19f06caa6d2.zip |
Don't rely on the global server as a receiver.
The `WorkerTest`'s `Receiver` is imporsonating an `ActionCable::Connection::Base`, but
just delegates the logger to `ActionCable.logger`.
This creates a mismatch as the connection requires the logger to be a
`TaggedLoggerProxy`'ied logger, while the server doesn't.
Thus to ensure an exception isn't raised when the worker tries to call `tag`
other tests have to assign a proxied logger to their test server.
Instead of forcing change on other tests, have Receiver adhere to the connection
contract and use a `TaggedLoggerProxy`.
As a consequence remove more setup from the tests.
Diffstat (limited to 'actioncable/test/worker_test.rb')
-rw-r--r-- | actioncable/test/worker_test.rb | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/actioncable/test/worker_test.rb b/actioncable/test/worker_test.rb index 4a699cde27..654f49821e 100644 --- a/actioncable/test/worker_test.rb +++ b/actioncable/test/worker_test.rb @@ -17,7 +17,9 @@ class WorkerTest < ActiveSupport::TestCase end def logger - ActionCable.server.logger + # Impersonating a connection requires a TaggedLoggerProxy'ied logger. + inner_logger = Logger.new(StringIO.new).tap { |l| l.level = Logger::UNKNOWN } + ActionCable::Connection::TaggedLoggerProxy.new(inner_logger, tags: []) end end |