feat: support filters in if/unless/case, see #287

This commit is contained in:
harttle
2021-02-12 22:22:41 +08:00
parent 4e82da689e
commit 2f059f6a25
18 changed files with 164 additions and 176 deletions
+2 -2
View File
@@ -76,9 +76,9 @@ describe('tags/assign', function () {
return expect(html).to.equal('11')
})
it('should write to the root scope', async function () {
const src = '{%for a in (1..2)%}{%assign num = a%}{{a}}{%endfor%} {{num}}'
const src = '{%for a in (1..2)%}{%assign num = a%}{{a}}{%endfor%}'
const html = await liquid.parseAndRender(src, { num: 1 })
return expect(html).to.equal('12 2')
return expect(html).to.equal('12')
})
it('should not change input scope', async function () {
const src = '{%for a in (1..2)%}{%assign num = a%}{{a}}{%endfor%} {{num}}'
+8
View File
@@ -80,6 +80,14 @@ describe('tags/if', function () {
return expect(html).to.equal('success')
})
})
describe('filters as condition', function () {
it('should support filter on expression', async function () {
liquid.registerFilter('negate', (val) => !val)
const src = '{% if 2 == 3 | negate %}yes{%else%}no{%endif%}'
const html = await liquid.parseAndRender(src, scope)
return expect(html).to.equal('yes')
})
})
describe('compare to null', function () {
it('should evaluate false for null < 10', async function () {
const src = '{% if null < 10 %}yes{% else %}no{% endif %}'