mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-29 07:05:12 -07:00
Improve the unexpected end delimiter message for block tags. (#1003)
This commit is contained in:
+3
-3
@@ -26,12 +26,12 @@ module Liquid
|
|||||||
end
|
end
|
||||||
|
|
||||||
def unknown_tag(tag, _params, _tokens)
|
def unknown_tag(tag, _params, _tokens)
|
||||||
case tag
|
if tag == 'else'.freeze
|
||||||
when 'else'.freeze
|
|
||||||
raise SyntaxError.new(parse_context.locale.t("errors.syntax.unexpected_else".freeze,
|
raise SyntaxError.new(parse_context.locale.t("errors.syntax.unexpected_else".freeze,
|
||||||
block_name: block_name))
|
block_name: block_name))
|
||||||
when 'end'.freeze
|
elsif tag.start_with?('end'.freeze)
|
||||||
raise SyntaxError.new(parse_context.locale.t("errors.syntax.invalid_delimiter".freeze,
|
raise SyntaxError.new(parse_context.locale.t("errors.syntax.invalid_delimiter".freeze,
|
||||||
|
tag: tag,
|
||||||
block_name: block_name,
|
block_name: block_name,
|
||||||
block_delimiter: block_delimiter))
|
block_delimiter: block_delimiter))
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
if: "Syntax Error in tag 'if' - Valid syntax: if [expression]"
|
if: "Syntax Error in tag 'if' - Valid syntax: if [expression]"
|
||||||
include: "Error in tag 'include' - Valid syntax: include '[template]' (with|for) [object|collection]"
|
include: "Error in tag 'include' - Valid syntax: include '[template]' (with|for) [object|collection]"
|
||||||
unknown_tag: "Unknown tag '%{tag}'"
|
unknown_tag: "Unknown tag '%{tag}'"
|
||||||
invalid_delimiter: "'end' is not a valid delimiter for %{block_name} tags. use %{block_delimiter}"
|
invalid_delimiter: "'%{tag}' is not a valid delimiter for %{block_name} tags. use %{block_delimiter}"
|
||||||
unexpected_else: "%{block_name} tag does not expect 'else' tag"
|
unexpected_else: "%{block_name} tag does not expect 'else' tag"
|
||||||
unexpected_outer_tag: "Unexpected outer '%{tag}' tag"
|
unexpected_outer_tag: "Unexpected outer '%{tag}' tag"
|
||||||
tag_termination: "Tag '%{token}' was not properly terminated with regexp: %{tag_end}"
|
tag_termination: "Tag '%{token}' was not properly terminated with regexp: %{tag_end}"
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class BlockTest < Minitest::Test
|
||||||
|
include Liquid
|
||||||
|
|
||||||
|
def test_unexpected_end_tag
|
||||||
|
exc = assert_raises(SyntaxError) do
|
||||||
|
Template.parse("{% if true %}{% endunless %}")
|
||||||
|
end
|
||||||
|
assert_equal exc.message, "Liquid syntax error: 'endunless' is not a valid delimiter for if tags. use endif"
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user