mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
Missing inline snippets should display same error as filebased
This commit is contained in:
committed by
Guilherme Carreiro
parent
5ceb0e9cec
commit
12fd93fbe2
@@ -101,13 +101,6 @@ class RenderTagTest < Minitest::Test
|
||||
end
|
||||
end
|
||||
|
||||
def test_dynamically_chosen_templates_are_not_allowed
|
||||
error = assert_raises(::ArgumentError) do
|
||||
Template.parse('{% assign name = "snippet" %}{% render name %}').render!
|
||||
end
|
||||
assert_equal("Argument error in tag 'render' - Dynamically chosen templates are not allowed", error.message)
|
||||
end
|
||||
|
||||
def test_rigid_parsing_errors
|
||||
with_error_modes(:lax, :strict) do
|
||||
assert_template_result(
|
||||
|
||||
@@ -480,6 +480,54 @@ class SnippetTest < Minitest::Test
|
||||
|
||||
assert_match("Expected end_of_string but found id", exception.message)
|
||||
end
|
||||
|
||||
def test_render_with_non_existent_tag
|
||||
template = Liquid::Template.parse(<<~LIQUID.chomp, line_numbers: true)
|
||||
{% snippet foo %}
|
||||
{% render non_existent %}
|
||||
{% endsnippet %}
|
||||
|
||||
{% render foo %}
|
||||
LIQUID
|
||||
|
||||
expected = <<~TEXT
|
||||
|
||||
|
||||
|
||||
Liquid error (index line 2): This liquid context does not allow includes
|
||||
TEXT
|
||||
template.name = "index"
|
||||
|
||||
assert_equal(expected, template.render('errors' => ErrorDrop.new))
|
||||
end
|
||||
|
||||
def test_render_handles_errors
|
||||
template = Liquid::Template.parse(<<~LIQUID.chomp, line_numbers: true)
|
||||
{% snippet foo %}
|
||||
{% render non_existent %} will raise an error.
|
||||
|
||||
Bla bla test.
|
||||
|
||||
This is an argument error: {{ 'test' | slice: 'not a number' }}
|
||||
{% endsnippet %}
|
||||
|
||||
{% render foo %}
|
||||
LIQUID
|
||||
|
||||
expected = <<~TEXT
|
||||
|
||||
|
||||
|
||||
Liquid error (index line 2): This liquid context does not allow includes will raise an error.
|
||||
|
||||
Bla bla test.
|
||||
|
||||
This is an argument error: Liquid error (index line 6): invalid integer
|
||||
TEXT
|
||||
template.name = "index"
|
||||
|
||||
assert_equal(expected, template.render('errors' => ErrorDrop.new))
|
||||
end
|
||||
end
|
||||
|
||||
class RigidMode < SnippetTest
|
||||
@@ -956,6 +1004,54 @@ class SnippetTest < Minitest::Test
|
||||
assert_match("Expected a string or identifier, found 123", exception.message)
|
||||
end
|
||||
|
||||
def test_render_with_non_existent_tag
|
||||
template = Liquid::Template.parse(<<~LIQUID.chomp, line_numbers: true, error_mode: :rigid)
|
||||
{% snippet foo %}
|
||||
{% render non_existent %}
|
||||
{% endsnippet %}
|
||||
|
||||
{% render foo %}
|
||||
LIQUID
|
||||
|
||||
expected = <<~TEXT
|
||||
|
||||
|
||||
|
||||
Liquid error (index line 2): This liquid context does not allow includes
|
||||
TEXT
|
||||
template.name = "index"
|
||||
|
||||
assert_equal(expected, template.render('errors' => ErrorDrop.new))
|
||||
end
|
||||
|
||||
def test_render_handles_errors
|
||||
template = Liquid::Template.parse(<<~LIQUID.chomp, line_numbers: true, error_mode: :rigid)
|
||||
{% snippet foo %}
|
||||
{% render non_existent %} will raise an error.
|
||||
|
||||
Bla bla test.
|
||||
|
||||
This is an argument error: {{ 'test' | slice: 'not a number' }}
|
||||
{% endsnippet %}
|
||||
|
||||
{% render foo %}
|
||||
LIQUID
|
||||
|
||||
expected = <<~TEXT
|
||||
|
||||
|
||||
|
||||
Liquid error (index line 2): This liquid context does not allow includes will raise an error.
|
||||
|
||||
Bla bla test.
|
||||
|
||||
This is an argument error: Liquid error (index line 6): invalid integer
|
||||
TEXT
|
||||
template.name = "index"
|
||||
|
||||
assert_equal(expected, template.render('errors' => ErrorDrop.new))
|
||||
end
|
||||
|
||||
def test_render_with_no_identifier
|
||||
template = "{% render %}"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user