mirror of
https://github.com/kemko/liquid.git
synced 2026-01-08 11:15:40 +03:00
Optional line numbers for liquid errors
This commit is contained in:
@@ -22,6 +22,39 @@ end
|
||||
class ErrorHandlingTest < Minitest::Test
|
||||
include Liquid
|
||||
|
||||
def test_templates_parsed_with_line_numbers_renders_them_in_errors
|
||||
template = <<-LIQUID
|
||||
Hello,
|
||||
|
||||
{{ errors.standard_error }} will raise a standard error.
|
||||
|
||||
Bla bla test.
|
||||
|
||||
{{ errors.syntax_error }} will raise a syntax error.
|
||||
|
||||
This is an argument error: {{ errors.argument_error }}
|
||||
|
||||
Bla.
|
||||
LIQUID
|
||||
|
||||
expected = <<-TEXT
|
||||
Hello,
|
||||
|
||||
Liquid error: 3: standard error will raise a standard error.
|
||||
|
||||
Bla bla test.
|
||||
|
||||
Liquid syntax error: 7: syntax error will raise a syntax error.
|
||||
|
||||
This is an argument error: Liquid error: 9: argument error
|
||||
|
||||
Bla.
|
||||
TEXT
|
||||
|
||||
output = Liquid::Template.parse(template, line_numbers: true).render('errors' => ErrorDrop.new)
|
||||
assert_equal expected, output
|
||||
end
|
||||
|
||||
def test_standard_error
|
||||
template = Liquid::Template.parse( ' {{ errors.standard_error }} ' )
|
||||
assert_equal ' Liquid error: standard error ', template.render('errors' => ErrorDrop.new)
|
||||
@@ -59,7 +92,7 @@ class ErrorHandlingTest < Minitest::Test
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def test_lax_unrecognized_operator
|
||||
template = Liquid::Template.parse(' {% if 1 =! 2 %}ok{% endif %} ', :error_mode => :lax)
|
||||
assert_equal ' Liquid error: Unknown operator =! ', template.render
|
||||
@@ -91,8 +124,8 @@ class ErrorHandlingTest < Minitest::Test
|
||||
# Liquid should not catch Exceptions that are not subclasses of StandardError, like Interrupt and NoMemoryError
|
||||
def test_exceptions_propagate
|
||||
assert_raises Exception do
|
||||
template = Liquid::Template.parse( ' {{ errors.exception }} ' )
|
||||
template = Liquid::Template.parse('{{ errors.exception }}')
|
||||
template.render('errors' => ErrorDrop.new)
|
||||
end
|
||||
end
|
||||
end # ErrorHandlingTest
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user