1 | var assert = require('assert');
|
2 | var hbs = require('..');
|
3 | var H = require('./helpers');
|
4 |
|
5 | describe('helpers', function() {
|
6 |
|
7 | describe('sync', function() {
|
8 | var dirname = __dirname + '/views/helpers';
|
9 |
|
10 | function sync(s, options) {
|
11 | return new hbs.SafeString("-sync-" + s);
|
12 | }
|
13 |
|
14 | it ('should register functions', function(done) {
|
15 | var hb = hbs.create();
|
16 | hb.registerHelper("sync", sync);
|
17 | var render = hb.express3({
|
18 | viewsDir: dirname
|
19 | });
|
20 | var locals = H.createLocals('express3', dirname);
|
21 |
|
22 | render(dirname + '/home/index.hbs', locals, function(err, html) {
|
23 | assert.equal('<default>index-sync-index</default>', H.stripWs(html));
|
24 | done();
|
25 | });
|
26 | });
|
27 | });
|
28 |
|
29 | describe('async', function() {
|
30 | var dirname = __dirname + '/views/helpers';
|
31 | it ('should register functions', function(done) {
|
32 | var hb = hbs.create();
|
33 | function async(s, cb) {
|
34 | setTimeout(function() {
|
35 | cb(new hb.SafeString("-async-" + s));
|
36 | }, Math.floor((Math.random()*10)+1));
|
37 | }
|
38 | hb.registerAsyncHelper("async", async);
|
39 |
|
40 | var render = hb.express3({
|
41 | viewsDir: dirname
|
42 | });
|
43 | var locals = H.createLocals('express3', dirname);
|
44 |
|
45 | render(dirname + '/home/async.hbs', locals, function(err, html) {
|
46 | assert.equal('<default>asynctemplate-async-foo-async-bar-async-bah-async-baz</default>', H.stripWs(html));
|
47 | done();
|
48 | });
|
49 | });
|
50 |
|
51 |
|
52 | });
|
53 |
|
54 | });
|