From 34a33f8b0c234fcbc06a15c958b079a0f5b4400c Mon Sep 17 00:00:00 2001 From: st0012 Date: Mon, 6 May 2019 20:06:35 +0800 Subject: Clear Resolvers' cache after running RenderTestCases' test cases The templates rendered in RenderTestCases tests will be cached by the resolvers unexpectedly. And this will break other tests when executed in certain order. (See https://github.com/rails/rails/issues/36154 for more detail) So to fix this issue, we just need to clear the caches on all resolvers. --- actionview/test/template/render_test.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'actionview') diff --git a/actionview/test/template/render_test.rb b/actionview/test/template/render_test.rb index f0b5d7d95e..4bc7d72464 100644 --- a/actionview/test/template/render_test.rb +++ b/actionview/test/template/render_test.rb @@ -33,6 +33,11 @@ module RenderTestCases assert_equal ORIGINAL_LOCALES, I18n.available_locales.map(&:to_s).sort end + def teardown + I18n.reload! + ActionController::Base.view_paths.map(&:clear_cache) + end + def test_implicit_format_comes_from_parent_template rendered_templates = JSON.parse(@controller_view.render(template: "test/mixing_formats")) assert_equal({ "format" => "HTML", @@ -680,7 +685,7 @@ class CachedViewRenderTest < ActiveSupport::TestCase def teardown GC.start - I18n.reload! + super end end @@ -699,7 +704,7 @@ class LazyViewRenderTest < ActiveSupport::TestCase def teardown GC.start - I18n.reload! + super end def test_render_utf8_template_with_magic_comment @@ -758,8 +763,8 @@ class CachedCollectionViewRenderTest < ActiveSupport::TestCase setup_view(view_paths) end - teardown do - I18n.reload! + def teardown + super end test "template body written to cache" do -- cgit v1.2.3