mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-18 22:10:41 -07:00
fix: {%assign%} now adds a shading scope
This commit is contained in:
+3
-5
@@ -54,8 +54,7 @@ describe('filters', function () {
|
||||
|
||||
{%- for item in everything -%}
|
||||
- {{ item }}
|
||||
{% endfor -%}`,
|
||||
`- apples
|
||||
{% endfor -%}`, `- apples
|
||||
- oranges
|
||||
- peaches
|
||||
- carrots
|
||||
@@ -70,8 +69,7 @@ describe('filters', function () {
|
||||
|
||||
{%- for item in everything -%}
|
||||
- {{ item }}
|
||||
{% endfor -%}`,
|
||||
`- apples
|
||||
{% endfor -%}`, `- apples
|
||||
- oranges
|
||||
- peaches
|
||||
- carrots
|
||||
@@ -156,7 +154,7 @@ describe('filters', function () {
|
||||
|
||||
it('should support join', function () {
|
||||
var src = '{% assign beatles = "John, Paul, George, Ringo" | split: ", " %}' +
|
||||
'{{ beatles | join: " and " }}'
|
||||
'{{ beatles | join: " and " }}'
|
||||
return test(src, 'John and Paul and George and Ringo')
|
||||
})
|
||||
|
||||
|
||||
@@ -187,11 +187,6 @@ describe('scope', function () {
|
||||
})
|
||||
|
||||
describe('.push()', function () {
|
||||
it('should throw when trying to push non-object', function () {
|
||||
expect(function () {
|
||||
scope.push(false)
|
||||
}).to.throw()
|
||||
})
|
||||
it('should push scope', function () {
|
||||
scope.set('bar', 'bar')
|
||||
scope.push({
|
||||
|
||||
+28
-14
@@ -1,53 +1,67 @@
|
||||
'use strict'
|
||||
const Liquid = require('../..')
|
||||
const chai = require('chai')
|
||||
const expect = chai.expect
|
||||
chai.use(require('chai-as-promised'))
|
||||
|
||||
describe('tags/assign', function () {
|
||||
var liquid = Liquid()
|
||||
let liquid = Liquid()
|
||||
it('should throw when variable expression illegal', function () {
|
||||
var src = '{% assign / %}'
|
||||
var ctx = {}
|
||||
let src = '{% assign / %}'
|
||||
let ctx = {}
|
||||
return expect(liquid.parseAndRender(src, ctx)).to.be.rejectedWith(/illegal/)
|
||||
})
|
||||
|
||||
it('should assign as string', function () {
|
||||
var src = '{% assign foo="bar" %}{{foo}}'
|
||||
it('should support assign to a string', function () {
|
||||
let src = '{% assign foo="bar" %}{{foo}}'
|
||||
return expect(liquid.parseAndRender(src))
|
||||
.to.eventually.equal('bar')
|
||||
})
|
||||
it('should support assign to a number', function () {
|
||||
let src = '{% assign foo=10086 %}{{foo}}'
|
||||
return expect(liquid.parseAndRender(src))
|
||||
.to.eventually.equal('10086')
|
||||
})
|
||||
it('should shading rather than overwriting', function () {
|
||||
let ctx = {foo: 'foo'}
|
||||
let src = '{% assign foo="FOO" %}{{foo}}'
|
||||
return liquid.parseAndRender(src, ctx)
|
||||
.then(x => {
|
||||
expect(x).to.equal('FOO')
|
||||
expect(ctx.foo).to.equal('foo')
|
||||
})
|
||||
})
|
||||
it('should assign as array', function () {
|
||||
var src = '{% assign foo=(1..3) %}{{foo}}'
|
||||
let src = '{% assign foo=(1..3) %}{{foo}}'
|
||||
return expect(liquid.parseAndRender(src))
|
||||
.to.eventually.equal('[1,2,3]')
|
||||
})
|
||||
it('should assign as filter result', function () {
|
||||
var src = '{% assign foo="a b" | capitalize | split: " " | first %}{{foo}}'
|
||||
let src = '{% assign foo="a b" | capitalize | split: " " | first %}{{foo}}'
|
||||
return expect(liquid.parseAndRender(src))
|
||||
.to.eventually.equal('A')
|
||||
})
|
||||
it('should assign var-1', function () {
|
||||
var src = '{% assign var-1 = 5 %}{{ var-1 }}'
|
||||
let src = '{% assign var-1 = 5 %}{{ var-1 }}'
|
||||
return expect(liquid.parseAndRender(src)).to.eventually.equal('5')
|
||||
})
|
||||
it('should assign var-', function () {
|
||||
var src = '{% assign var- = 5 %}{{ var- }}'
|
||||
let src = '{% assign var- = 5 %}{{ var- }}'
|
||||
return expect(liquid.parseAndRender(src)).to.eventually.equal('5')
|
||||
})
|
||||
it('should assign -var', function () {
|
||||
var src = '{% assign -var = 5 %}{{ -var }}'
|
||||
let src = '{% assign -let = 5 %}{{ -let }}'
|
||||
return expect(liquid.parseAndRender(src)).to.eventually.equal('5')
|
||||
})
|
||||
it('should assign -5-5', function () {
|
||||
var src = '{% assign -5-5 = 5 %}{{ -5-5 }}'
|
||||
let src = '{% assign -5-5 = 5 %}{{ -5-5 }}'
|
||||
return expect(liquid.parseAndRender(src)).to.eventually.equal('5')
|
||||
})
|
||||
it('should assign 4-3', function () {
|
||||
var src = '{% assign 4-3 = 5 %}{{ 4-3 }}'
|
||||
let src = '{% assign 4-3 = 5 %}{{ 4-3 }}'
|
||||
return expect(liquid.parseAndRender(src)).to.eventually.equal('5')
|
||||
})
|
||||
it('should not assign -6', function () {
|
||||
var src = '{% assign -6 = 5 %}{{ -6 }}'
|
||||
let src = '{% assign -6 = 5 %}{{ -6 }}'
|
||||
return expect(liquid.parseAndRender(src)).to.eventually.equal('-6')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user