aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/rack_logger_test.rb
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2018-04-04 18:17:01 -0400
committerRafael Mendonça França <rafaelmfranca@gmail.com>2018-04-04 18:17:16 -0400
commit826b17cd8a4f0416fd6b8451199fd0f1fa20f417 (patch)
treeecccec505ebcdd76cad6a03c586a92ae1e44ae1f /railties/test/rack_logger_test.rb
parent8d62ff00805a222baa76cfe1fe7b16c985a1893e (diff)
parent0ac64470ea3dd39e7285ecb971b5995fb94eb2c2 (diff)
downloadrails-826b17cd8a4f0416fd6b8451199fd0f1fa20f417.tar.gz
rails-826b17cd8a4f0416fd6b8451199fd0f1fa20f417.tar.bz2
rails-826b17cd8a4f0416fd6b8451199fd0f1fa20f417.zip
Merge pull request #32444 from matrinox/fix-return-response-mutation-rack-logger
Stop mutating body response
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..41e063e893 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