aboutsummaryrefslogtreecommitdiff
path: root/js/test/filters.js
blob: 9bf1a1cbf18a4d71fe52353995000cd57e89bd17 (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 Luigi.Template('foo%{bar|h}'),
        r = t.run({ bar: '<' });

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

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

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

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

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

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

  it('custom template filter', function() {
    var r = Luigi.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 = Luigi.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');
  });
})();