summaryrefslogtreecommitdiffstats
path: root/lib/models/__tests__/templateEngine.js
blob: 6f18b1848449065c7038369cc133dd783d77de15 (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

describe('TemplateBlock', function() {
    var TemplateEngine = require('../templateEngine');

    describe('create', function() {
        it('must initialize with a list of filters', function() {
            var engine = TemplateEngine.create({
                filters: {
                    hello: function(name) {
                        return 'Hello ' + name + '!';
                    }
                }
            });
            var env = engine.toNunjucks();
            var res = env.renderString('{{ "Luke"|hello }}');

            expect(res).toBe('Hello Luke!');
        });

        it('must initialize with a list of globals', function() {
            var engine = TemplateEngine.create({
                globals: {
                    hello: function(name) {
                        return 'Hello ' + name + '!';
                    }
                }
            });
            var env = engine.toNunjucks();
            var res = env.renderString('{{ hello("Luke") }}');

            expect(res).toBe('Hello Luke!');
        });

        it('must pass context to filters and blocks', function() {
            var engine = TemplateEngine.create({
                filters: {
                    hello: function(name) {
                        return 'Hello ' + name + ' ' + this.lastName + '!';
                    }
                },
                context: {
                    lastName: 'Skywalker'
                }
            });
            var env = engine.toNunjucks();
            var res = env.renderString('{{ "Luke"|hello }}');

            expect(res).toBe('Hello Luke Skywalker!');
        });
    });
});