aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/rack_logger_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/test/rack_logger_test.rb')
-rw-r--r--railties/test/rack_logger_test.rb20
1 files changed, 18 insertions, 2 deletions
diff --git a/railties/test/rack_logger_test.rb b/railties/test/rack_logger_test.rb
index e47f30d5b6..3a4b7ba437 100644
--- a/railties/test/rack_logger_test.rb
+++ b/railties/test/rack_logger_test.rb
@@ -14,14 +14,21 @@ module Rails
attr_reader :logger
- def initialize(logger = NULL, taggers = nil, &block)
- super(->(_) { block.call; [200, {}, []] }, taggers)
+ def initialize(logger = NULL, app: nil, taggers: nil, &block)
+ app ||= ->(_) { block.call; [200, {}, []] }
+ super(app, taggers)
@logger = logger
end
def development?; false; end
end
+ class TestApp < Struct.new(:response)
+ def call(_env)
+ response
+ end
+ end
+
Subscriber = Struct.new(:starts, :finishes) do
def initialize(starts = [], finishes = [])
super
@@ -72,6 +79,15 @@ module Rails
end
end
end
+
+ def test_logger_does_not_mutate_app_return
+ response = []
+ app = TestApp.new(response)
+ logger = TestLogger.new(app: app)
+ assert_no_changes('response') do
+ logger.call('REQUEST_METHOD' => 'GET')
+ end
+ end
end
end
end