Tweak test formatting; fix order-dependent failure
The order-dependent failure has been been commented in code. After manually bisecting the test suite, I was able to determine that the template cascade tests were leaving the `@@template_priority_path` set to an overridden value in tests run afterward.
This commit is contained in:
@@ -11,9 +11,13 @@ module Precious
|
|||||||
end
|
end
|
||||||
|
|
||||||
def first_path_available(name)
|
def first_path_available(name)
|
||||||
priority = File.join(template_priority_path, "#{name}.#{template_extension}")
|
|
||||||
default = File.join(template_path, "#{name}.#{template_extension}")
|
default = File.join(template_path, "#{name}.#{template_extension}")
|
||||||
File.exists?(priority) ? priority : default
|
priority =
|
||||||
|
if template_priority_path
|
||||||
|
File.join(template_priority_path, "#{name}.#{template_extension}")
|
||||||
|
end
|
||||||
|
|
||||||
|
priority && File.exists?(priority) ? priority : default
|
||||||
end
|
end
|
||||||
|
|
||||||
# Method should track lib/mustache/settings.rb from Mustache project.
|
# Method should track lib/mustache/settings.rb from Mustache project.
|
||||||
|
|||||||
@@ -1,47 +1,59 @@
|
|||||||
# ~*~ encoding: utf-8 ~*~
|
# ~*~ encoding: utf-8 ~*~
|
||||||
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
||||||
|
|
||||||
class TestTemplateCascade < Minitest::Unit::TestCase
|
context "Precious::Views::TemplateCascade" do
|
||||||
include Rack::Test::Methods
|
include Rack::Test::Methods
|
||||||
|
|
||||||
def setup
|
setup do
|
||||||
@path = cloned_testpath('examples/lotr.git')
|
@path = cloned_testpath('examples/lotr.git')
|
||||||
Precious::App.set(:gollum_path, @path)
|
Precious::App.set(:gollum_path, @path)
|
||||||
Precious::App.set(:wiki_options, {template_dir: testpath('examples/template_cascade')})
|
Precious::App.set(
|
||||||
|
:wiki_options,
|
||||||
|
{template_dir: testpath('examples/template_cascade')}
|
||||||
|
)
|
||||||
@wiki = Gollum::Wiki.new(@path)
|
@wiki = Gollum::Wiki.new(@path)
|
||||||
end
|
end
|
||||||
|
|
||||||
def teardown
|
teardown do
|
||||||
FileUtils.rm_rf(@path)
|
FileUtils.rm_rf(@path)
|
||||||
|
|
||||||
|
Precious::App.set(:wiki_options, {template_dir: nil})
|
||||||
|
|
||||||
|
# The following line has been added to avoid order-dependent test failures.
|
||||||
|
# We saw issues where the class variable `@@template_priority_path` was not
|
||||||
|
# being reset between test cases.
|
||||||
|
Precious::Views::TemplateCascade.class_variable_set(
|
||||||
|
:@@template_priority_path,
|
||||||
|
nil
|
||||||
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
def app
|
def app
|
||||||
Precious::App
|
Precious::App.new
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_overridden_page_template_is_used
|
test "overridden_page_template_is_used" do
|
||||||
get '/Home'
|
get '/Home'
|
||||||
|
|
||||||
assert last_response.body.include?('PAGE_OVERRIDE')
|
assert last_response.body.include?('PAGE_OVERRIDE')
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_overridden_navbar_partial_is_used
|
test "test_overridden_navbar_partial_is_used" do
|
||||||
get '/Home'
|
get '/Home'
|
||||||
|
|
||||||
assert last_response.body.include?('NAVBAR_OVERRIDE')
|
assert last_response.body.include?('NAVBAR_OVERRIDE')
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_overridden_templates_are_ignore_without_template_dir_set
|
test "test_overridden_templates_are_ignore_without_template_dir_set" do
|
||||||
Precious::App.set(:wiki_options, {template_dir: nil})
|
Precious::App.set(:wiki_options, {template_dir: nil})
|
||||||
|
|
||||||
get '/Home'
|
get '/Home'
|
||||||
|
|
||||||
assert_equal '/Home', last_request.fullpath
|
assert_equal '/Home', last_request.fullpath
|
||||||
|
|
||||||
assert last_response.ok?
|
assert last_response.ok?
|
||||||
|
|
||||||
refute_match /PAGE_OVERRIDE/, last_response.body
|
refute_match /PAGE_OVERRIDE/, last_response.body
|
||||||
refute_match /NAVBAR_OVERRIDE/, last_response.body
|
refute_match /NAVBAR_OVERRIDE/, last_response.body
|
||||||
end
|
end
|
||||||
|
|
||||||
def teardown
|
|
||||||
FileUtils.rm_rf(@path)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user