From 21d6197533688bf51bbe13cfd6cc3663ed23cf38 Mon Sep 17 00:00:00 2001 From: Marco Rudilosso Date: Wed, 19 Jul 2023 15:22:12 +0000 Subject: [PATCH] Call to_liquid_value when short circuiting conditions --- lib/liquid/condition.rb | 4 ++-- test/integration/variable_test.rb | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/liquid/condition.rb b/lib/liquid/condition.rb index c1476dd4..d35ba301 100644 --- a/lib/liquid/condition.rb +++ b/lib/liquid/condition.rb @@ -69,9 +69,9 @@ module Liquid case condition.child_relation when :or - break if result + break if Liquid::Utils.to_liquid_value(result) when :and - break unless result + break unless Liquid::Utils.to_liquid_value(result) else break end diff --git a/test/integration/variable_test.rb b/test/integration/variable_test.rb index 42b38e33..22f2b64e 100644 --- a/test/integration/variable_test.rb +++ b/test/integration/variable_test.rb @@ -34,6 +34,7 @@ class VariableTest < Minitest::Test assert_template_result('', '{% if foo %}true{% endif %}', { 'foo' => BooleanDrop.new(false) }) assert_template_result('', '{% if foo == true %}True{% endif %}', { 'foo' => BooleanDrop.new(false) }) + assert_template_result('', '{% if foo and true %}SHOULD NOT HAPPEN{% endif %}', { 'foo' => BooleanDrop.new(false) }) assert_template_result('one', '{% if a contains x %}one{% endif %}', { 'a' => [1], 'x' => IntegerDrop.new(1) }) end