mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-18 05:50:43 -07:00
fix: whiteSpace Ctrl with compliance to shopify/liquid, working on #17
This commit is contained in:
+1
-88
@@ -1,6 +1,5 @@
|
||||
const chai = require('chai')
|
||||
const parse = require('../src/tokenizer.js').parse
|
||||
const whiteSpaceCtrl = require('../src/tokenizer.js').whiteSpaceCtrl
|
||||
const expect = chai.expect
|
||||
|
||||
describe('tokenizer', function () {
|
||||
@@ -16,7 +15,7 @@ describe('tokenizer', function () {
|
||||
it('should throw when non-string passed in', function () {
|
||||
expect(function () {
|
||||
parse({})
|
||||
}).to.throw('illegal input type')
|
||||
}).to.throw('illegal input')
|
||||
})
|
||||
it('should handle tag syntax', function () {
|
||||
var html = '<p>{% for p in a[1]%}</p>'
|
||||
@@ -70,90 +69,4 @@ describe('tokenizer', function () {
|
||||
expect(tokens[0].raw).to.equal('{{foo\n|date:\n"%Y-%m-%d"\n}}')
|
||||
})
|
||||
})
|
||||
describe('whitespace control', function () {
|
||||
it('should not strip by default (tag)', function () {
|
||||
expect(whiteSpaceCtrl('\n {%foo%} \n')).to.equal('\n {%foo%} \n')
|
||||
})
|
||||
it('should strip all blank characters before and after (tag)', function () {
|
||||
expect(whiteSpaceCtrl(' \t\r{%-foo-%} \t\n')).to.equal('{%-foo-%}')
|
||||
})
|
||||
it('should not trim previous/next lines (tag)', function () {
|
||||
expect(whiteSpaceCtrl(' \t\n {%-foo-%}')).to.equal(' \t\n{%-foo-%}')
|
||||
expect(whiteSpaceCtrl('{%-foo-%} \n \tfoo')).to.equal('{%-foo-%} \tfoo')
|
||||
})
|
||||
it('should trim exactly one trailing CR (tag)', function () {
|
||||
expect(whiteSpaceCtrl('{%-foo-%} \n\n')).to.equal('{%-foo-%}\n')
|
||||
})
|
||||
it('should trim exactly one trailing CR (tag)', function () {
|
||||
expect(whiteSpaceCtrl('{%-foo-%} \n\n')).to.equal('{%-foo-%}\n')
|
||||
})
|
||||
it('should trim all leading/trailing blanks when options.greedy set (tag)', function () {
|
||||
expect(whiteSpaceCtrl(' \n \n\t\r{%-foo-%}\n \n', {
|
||||
greedy: true
|
||||
})).to.equal('{%-foo-%}')
|
||||
})
|
||||
it('should strip whitespaces when set trim_left (tag)', function () {
|
||||
expect(whiteSpaceCtrl('\n {%foo%} \n', {
|
||||
trim_left: true
|
||||
})).to.equal('\n{%-foo%} \n')
|
||||
})
|
||||
it('should strip whitespaces when set trim_right (tag)', function () {
|
||||
expect(whiteSpaceCtrl('\n {%foo%} \n', {
|
||||
trim_right: true
|
||||
})).to.equal('\n {%foo-%}')
|
||||
})
|
||||
it('markup should has priority over options (tag)', function () {
|
||||
expect(whiteSpaceCtrl('\n {%-foo%} \n', {
|
||||
trim_left: false
|
||||
})).to.equal('\n{%-foo%} \n')
|
||||
})
|
||||
it('should support a mix of markup and options (tag)', function () {
|
||||
expect(whiteSpaceCtrl(' {%-foo%} \n', {
|
||||
trim_left: true,
|
||||
trim_right: true
|
||||
})).to.equal('{%-foo-%}')
|
||||
})
|
||||
it('should not strip by default (value)', function () {
|
||||
expect(whiteSpaceCtrl('\n {{foo}} \n')).to.equal('\n {{foo}} \n')
|
||||
})
|
||||
it('should strip all blank characters before and after (value)', function () {
|
||||
expect(whiteSpaceCtrl(' \t\r{{-foo-}} \t\n')).to.equal('{{-foo-}}')
|
||||
})
|
||||
it('should not trim previous/next lines (value)', function () {
|
||||
expect(whiteSpaceCtrl(' \t\n {{-foo-}}')).to.equal(' \t\n{{-foo-}}')
|
||||
expect(whiteSpaceCtrl('{{-foo-}} \n \tfoo')).to.equal('{{-foo-}} \tfoo')
|
||||
})
|
||||
it('should trim exactly one trailing CR (value)', function () {
|
||||
expect(whiteSpaceCtrl('{{-foo-}} \n\n')).to.equal('{{-foo-}}\n')
|
||||
})
|
||||
it('should trim exactly one trailing CR (value)', function () {
|
||||
expect(whiteSpaceCtrl('{{-foo-}} \n\n')).to.equal('{{-foo-}}\n')
|
||||
})
|
||||
it('should trim all leading/trailing blanks when options.greedy set (value)', function () {
|
||||
expect(whiteSpaceCtrl(' \n \n\t\r{{-foo-}}\n \n', {
|
||||
greedy: true
|
||||
})).to.equal('{{-foo-}}')
|
||||
})
|
||||
it('should strip whitespaces when set trim_left (value)', function () {
|
||||
expect(whiteSpaceCtrl('\n {{foo}} \n', {
|
||||
trim_left: true
|
||||
})).to.equal('\n{{-foo}} \n')
|
||||
})
|
||||
it('should strip whitespaces when set trim_right (value)', function () {
|
||||
expect(whiteSpaceCtrl('\n {{foo}} \n', {
|
||||
trim_right: true
|
||||
})).to.equal('\n {{foo-}}')
|
||||
})
|
||||
it('markup should has priority over options (value)', function () {
|
||||
expect(whiteSpaceCtrl('\n {{-foo}} \n', {
|
||||
trim_left: false
|
||||
})).to.equal('\n{{-foo}} \n')
|
||||
})
|
||||
it('should support a mix of markup and options (value)', function () {
|
||||
expect(whiteSpaceCtrl(' {{-foo}} \n', {
|
||||
trim_left: true,
|
||||
trim_right: true
|
||||
})).to.equal('{{-foo-}}')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user