mirror of
https://github.com/harttle/liquidjs.git
synced 2026-09-15 04:10:40 -07:00
fix: reverse filter not pure, see #126
This commit is contained in:
@@ -6,7 +6,7 @@ export default {
|
||||
'last': <T>(v: T[]): T => last(v),
|
||||
'first': <T>(v: T[]): T => v[0],
|
||||
'map': <T1, T2>(arr: {[key: string]: T1}[], arg: string): T1[] => arr.map(v => v[arg]),
|
||||
'reverse': (v: any[]) => v.reverse(),
|
||||
'reverse': (v: any[]) => [...v].reverse(),
|
||||
'sort': <T>(v: T[], arg: (lhs: T, rhs: T) => number) => v.sort(arg),
|
||||
'size': (v: string | any[]) => v.length,
|
||||
'concat': <T1, T2>(v: T1[], arg: T2[] | T2): Array<T1 | T2> => Array.prototype.concat.call(v, arg),
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
import { test } from '../../../stub/render'
|
||||
import Liquid from '../../../../src/liquid'
|
||||
import {expect} from 'chai'
|
||||
|
||||
describe('filters/array', function () {
|
||||
let liquid: Liquid
|
||||
beforeEach(function () {
|
||||
liquid = new Liquid()
|
||||
})
|
||||
describe('join', function () {
|
||||
it('should support join', function () {
|
||||
const src = '{% assign beatles = "John, Paul, George, Ringo" | split: ", " %}' +
|
||||
@@ -21,9 +27,17 @@ describe('filters/array', function () {
|
||||
it('should support map', function () {
|
||||
return test('{{posts | map: "category"}}', 'foo,bar')
|
||||
})
|
||||
it('should support reverse', function () {
|
||||
return test('{{ "Ground control to Major Tom." | split: "" | reverse | join: "" }}',
|
||||
'.moT rojaM ot lortnoc dnuorG')
|
||||
describe('reverse', function () {
|
||||
it('should support reverse', async function () {
|
||||
const html = await liquid.parseAndRender('{{ "Ground control to Major Tom." | split: "" | reverse | join: "" }}')
|
||||
expect(html).to.equal('.moT rojaM ot lortnoc dnuorG')
|
||||
})
|
||||
it('should be pure', async function () {
|
||||
const scope = {arr: ['a', 'b', 'c']}
|
||||
await liquid.parseAndRender('{{ arr | reverse | join: "" }}', scope)
|
||||
const html = await liquid.parseAndRender('{{ arr | join: "" }}', scope)
|
||||
expect(html).to.equal('abc')
|
||||
})
|
||||
})
|
||||
describe('size', function () {
|
||||
it('should return string length',
|
||||
|
||||
Reference in New Issue
Block a user