Skip to content

Instantly share code, notes, and snippets.

@jameslk
Last active August 22, 2021 04:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jameslk/8f7c630a4a95e24d729cf685d012dd61 to your computer and use it in GitHub Desktop.
Save jameslk/8f7c630a4a95e24d729cf685d012dd61 to your computer and use it in GitHub Desktop.
Shopify's Liquid truthiness in various scenarios
{% comment %}
Shopify's Liquid truthiness in various scenarios.
---
value: true
results:
true: true
false: false
truthy: true
falsy: false
undefined: false
nil: false
blank: false
empty: false
empty str: false
is zero: false
value: false
results:
true: false
false: true
truthy: false
falsy: true
undefined: false
nil: false
blank: true
empty: false
empty str: false
is zero: false
value: 'test'
results:
true: false
false: false
truthy: true
falsy: false
undefined: false
nil: false
blank: false
empty: false
empty str: false
is zero: false
value: 123
results:
true: false
false: false
truthy: true
falsy: false
undefined: false
nil: false
blank: false
empty: false
empty str: false
is zero: false
value: 0
results:
true: false
false: false
truthy: true
falsy: false
undefined: false
nil: false
blank: false
empty: false
empty str: false
is zero: true
value: ''
results:
true: false
false: false
truthy: true
falsy: false
undefined: false
nil: false
blank: true
empty: true
empty str: true
is zero: false
value: ' '
results:
true: false
false: false
truthy: true
falsy: false
undefined: false
nil: false
blank: true
empty: false
empty str: false
is zero: false
value: nil
results:
true: false
false: false
truthy: false
falsy: true
undefined: true
nil: true
blank: true
empty: false
empty str: false
is zero: false
value: undefined
results:
true: false
false: false
truthy: false
falsy: true
undefined: true
nil: true
blank: true
empty: false
empty str: false
is zero: false
value: non-existent variable
results:
true: false
false: false
truthy: false
falsy: true
undefined: true
nil: true
blank: true
empty: false
empty str: false
is zero: false
---
Test Framework Below:
{% endcomment %}
{% assign test_true = true %}
{% assign test_false = false %}
{% assign test_str = 'test' %}
{% assign test_num = 123 %}
{% assign test_num_zero = 0 %}
{% assign test_empty_str = '' %}
{% assign test_space_str = ' ' %}
{% assign test_nil = nil %}
{% assign test_undefined = undefined %}
{% comment %} Change this to assign a value to be tested {% endcomment %}
{% assign test_subject = test_undefined %}
<!-- test subject: {{ test_subject | json }} -->
{% if test_subject == true %}
<!-- truthy: true -->
{% else %}
<!-- truthy: false -->
{% endif %}
{% if test_subject == true %}
<!-- true: true -->
{% else %}
<!-- true: false -->
{% endif %}
{% if test_subject == false %}
<!-- false: true -->
{% else %}
<!-- false: false -->
{% endif %}
{% if test_subject %}
<!-- truthy: true -->
{% else %}
<!-- truthy: false -->
{% endif %}
{% unless test_subject %}
<!-- falsy: true -->
{% else %}
<!-- falsy: false -->
{% endunless %}
{% if test_subject == nil %}
<!-- nil: true -->
{% else %}
<!-- nil: false -->
{% endif %}
{% if test_subject == blank %}
<!-- blank: true -->
{% else %}
<!-- blank: false -->
{% endif %}
{% if test_subject == empty %}
<!-- empty: true -->
{% else %}
<!-- empty: false -->
{% endif %}
{% if test_subject == '' %}
<!-- empty str: true -->
{% else %}
<!-- empty str: false -->
{% endif %}
{% if test_subject == 0 %}
<!-- is zero: true -->
{% else %}
<!-- is zero: false -->
{% endif %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment