Fix flaky test ActionControllerBaseRenderTest#test_direct_render_to_string

This commit is contained in:
Fumiaki MATSUSHIMA 2019-06-29 23:41:27 +09:00
parent 72bc0806a7
commit 6c69ff436a
1 changed files with 20 additions and 4 deletions

View File

@ -4,6 +4,11 @@ require "abstract_unit"
require "controller/fake_models"
class TestControllerWithExtraEtags < ActionController::Base
self.view_paths = [ActionView::FixtureResolver.new(
"test/with_implicit_template.erb" => "Hello explicitly!",
"test/hello_world.erb" => "Hello world!"
)]
def self.controller_name; "test"; end
def self.controller_path; "test"; end
@ -37,6 +42,11 @@ class TestControllerWithExtraEtags < ActionController::Base
end
class ImplicitRenderTestController < ActionController::Base
self.view_paths = [ActionView::FixtureResolver.new(
"implicit_render_test/hello_world.erb" => "Hello world!",
"implicit_render_test/empty_action_with_template.html.erb" => "<h1>Empty action rendered this implicitly.</h1>\n"
)]
def empty_action
end
@ -46,6 +56,10 @@ end
module Namespaced
class ImplicitRenderTestController < ActionController::Base
self.view_paths = [ActionView::FixtureResolver.new(
"namespaced/implicit_render_test/hello_world.erb" => "Hello world!"
)]
def hello_world
fresh_when(etag: "abc")
end
@ -293,13 +307,15 @@ end
module TemplateModificationHelper
private
def modify_template(name)
path = File.expand_path("../fixtures/#{name}.erb", __dir__)
original = File.read(path)
File.write(path, "#{original} Modified!")
hash = @controller.view_paths.first.instance_variable_get(:@hash)
key = name + ".erb"
original = hash[key]
hash[key] = "#{original} Modified!"
ActionView::LookupContext::DetailsKey.clear
yield
ensure
File.write(path, original)
hash[key] = original
ActionView::LookupContext::DetailsKey.clear
end
end