mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-16 17:30:43 -07:00
Boolean precedence unit tests
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'test_helper'
|
||||
require 'test_boolean_helper'
|
||||
|
||||
class BooleanUnitTest < Minitest::Test
|
||||
include Liquid
|
||||
@@ -487,60 +488,4 @@ class BooleanUnitTest < Minitest::Test
|
||||
template = Liquid::Template.parse("{% assign is_preview_mode = content_for_header contains 'foo' or content_for_header contains 'bar' %}{{ is_preview_mode }}")
|
||||
assert_equal("false", template.render(context))
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def assert_with_lax_parsing(template, expected_output, context = {})
|
||||
prev_error_mode = Liquid::Environment.default.error_mode
|
||||
Liquid::Environment.default.error_mode = :lax
|
||||
|
||||
begin
|
||||
actual_output = Liquid::Template.parse(template).render(context)
|
||||
rescue StandardError => e
|
||||
actual_output = e.message
|
||||
ensure
|
||||
Liquid::Environment.default.error_mode = prev_error_mode
|
||||
end
|
||||
|
||||
assert_equal(expected_output.strip, actual_output.strip)
|
||||
end
|
||||
|
||||
def assert_parity(liquid_expression, expected_result, args = {})
|
||||
assert_condition(liquid_expression, expected_result, args)
|
||||
assert_expression(liquid_expression, expected_result, args)
|
||||
end
|
||||
|
||||
def assert_expression(liquid_expression, expected_result, args = {})
|
||||
assert_parity_scenario(:expression, "{{ #{liquid_expression} }}", expected_result, args)
|
||||
end
|
||||
|
||||
def assert_condition(liquid_condition, expected_result, args = {})
|
||||
assert_parity_scenario(:condition, "{% if #{liquid_condition} %}true{% else %}false{% endif %}", expected_result, args)
|
||||
end
|
||||
|
||||
def assert_parity_scenario(kind, template, exp_output, args = {})
|
||||
act_output = Liquid::Template.parse(template).render(args)
|
||||
|
||||
assert_equal(exp_output, act_output, <<~ERROR_MESSAGE)
|
||||
#{kind.to_s.capitalize} template failure:
|
||||
---
|
||||
#{template}
|
||||
---
|
||||
args: #{args.inspect}
|
||||
ERROR_MESSAGE
|
||||
end
|
||||
|
||||
class LinkDrop < Liquid::Drop
|
||||
attr_accessor :levels, :links, :title, :type, :url
|
||||
|
||||
def initialize(levels: nil, links: nil, title: nil, type: nil, url: nil)
|
||||
super()
|
||||
|
||||
@levels = levels
|
||||
@links = links
|
||||
@title = title
|
||||
@type = type
|
||||
@url = url
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user