From 24c45819483c8d26c31a2ca8d834d199d1cd63d3 Mon Sep 17 00:00:00 2001 From: Antoine Veldhoven Date: Fri, 22 Sep 2023 10:38:28 +0200 Subject: [PATCH] Make is empty return false for boolean true. --- src/twig.tests.js | 6 ++++++ test/test.tests.js | 12 ++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/twig.tests.js b/src/twig.tests.js index edcd599d..00faba75 100644 --- a/src/twig.tests.js +++ b/src/twig.tests.js @@ -5,6 +5,12 @@ module.exports = function (Twig) { 'use strict'; Twig.tests = { empty(value) { + // Handle boolean true + if (value === true) { + return false; + } + + // Handle null or undefined if (value === null || value === undefined) { return true; } diff --git a/test/test.tests.js b/test/test.tests.js index 2da23b1b..20ac54aa 100644 --- a/test/test.tests.js +++ b/test/test.tests.js @@ -22,6 +22,18 @@ describe('Twig.js Tests ->', function () { twig({data: '{{ ["1"] is empty }}'}).render().should.equal('false'); }); + it('should identify booleans', function () { + // Array + twig({data: '{{ foo is empty }}'}).render( { foo: true } ).should.equal('false'); + twig({data: '{{ foo is empty }}'}).render( { foo: false }).should.equal('true'); + }); + + it('should identify null or undefined', function () { + // Array + twig({data: '{{ foo is empty }}'}).render( {foo: null} ).should.equal('true'); + twig({data: '{{ foo is empty }}'}).render( {foo: undefined} ).should.equal('true'); + }); + it('should identify empty objects', function () { // Object twig({data: '{{ {} is empty }}'}).render().should.equal('true');