summaryrefslogtreecommitdiff
path: root/js/test/compat/filters.js
blob: c9ba21af735ccad181d31d924d27be9c59f6d0eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
(function() {
  'use strict';
  var assert = chai.assert;

  it('filter', function() {
    var t = new LuigiTemplate('foo%{bar|h}'),
        r = t.run({ bar: '<' });

    assert.equal(r, 'foo&lt;');
  });

  it('filter chain', function() {
    var r = LuigiTemplate.run('foo%{bar|uc|lc}', {
      bar: 'foo'
    });

    assert.equal(r, 'foofoo');
  });

  it('custom global filter', function() {
    LuigiTemplate.FILTERS.barify = function(s) {
      return 'bar-' + s + '-bar';
    };

    var r = LuigiTemplate.run('foo%{bar | barify}', {
      bar: 'foo'
    });

    assert.equal(r, 'foobar-foo-bar');
  });

  it('custom template filter', function() {
    var r = LuigiTemplate.run('foo%{bar | barify}', {
      bar: 'foo'
    }, {
      barify: function(s) {
        return 'bar-' + s + '-bar';
      },
    });

    assert.equal(r, 'foobar-foo-bar');
  });

  it('filter args', function() {
    var r = LuigiTemplate.run('foo%{bar | wrap bar}', {
      bar: 'foo'
    }, {
      wrap: function(s, args) {
        if (args.length == 1) {
          return [args[0], s, args[0]].join('-');
        } else {
          return s;
        }
      },
    });

    assert.equal(r, 'foobar-foo-bar');
  });
})();