mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-18 02:10:41 -07:00
Merge pull request #798 from PhilibertDugas/bugfix-#697
Fixing #697 with better exception
This commit is contained in:
@@ -22,3 +22,5 @@
|
|||||||
tag_never_closed: "'%{block_name}' tag was never closed"
|
tag_never_closed: "'%{block_name}' tag was never closed"
|
||||||
meta_syntax_error: "Liquid syntax error: #{e.message}"
|
meta_syntax_error: "Liquid syntax error: #{e.message}"
|
||||||
table_row: "Syntax Error in 'table_row loop' - Valid syntax: table_row [item] in [collection] cols=3"
|
table_row: "Syntax Error in 'table_row loop' - Valid syntax: table_row [item] in [collection] cols=3"
|
||||||
|
argument:
|
||||||
|
include: "Argument error in tag 'include' - Illegal template name"
|
||||||
|
|||||||
@@ -42,8 +42,9 @@ module Liquid
|
|||||||
|
|
||||||
def render(context)
|
def render(context)
|
||||||
template_name = context.evaluate(@template_name_expr)
|
template_name = context.evaluate(@template_name_expr)
|
||||||
partial = load_cached_partial(template_name, context)
|
raise ArgumentError.new(options[:locale].t("errors.argument.include")) unless template_name
|
||||||
|
|
||||||
|
partial = load_cached_partial(template_name, context)
|
||||||
context_variable_name = template_name.split('/'.freeze).last
|
context_variable_name = template_name.split('/'.freeze).last
|
||||||
|
|
||||||
variable = if @variable_name_expr
|
variable = if @variable_name_expr
|
||||||
|
|||||||
@@ -217,6 +217,17 @@ class IncludeTagTest < Minitest::Test
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_render_raise_argument_error_when_template_is_undefined
|
||||||
|
assert_raises(Liquid::ArgumentError) do
|
||||||
|
template = Liquid::Template.parse('{% include undefined_variable %}')
|
||||||
|
template.render!
|
||||||
|
end
|
||||||
|
assert_raises(Liquid::ArgumentError) do
|
||||||
|
template = Liquid::Template.parse('{% include nil %}')
|
||||||
|
template.render!
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_including_via_variable_value
|
def test_including_via_variable_value
|
||||||
assert_template_result "from TestFileSystem", "{% assign page = 'pick_a_source' %}{% include page %}"
|
assert_template_result "from TestFileSystem", "{% assign page = 'pick_a_source' %}{% include page %}"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user